元,我有我的項目很簡單.pom文件指向它:找不到本地機器我有Maven倉庫安裝了Artifactory的在當地
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MYGROUP</groupId>
<artifactId>NAME</artifactId>
<packaging>jar</packaging>
<version>VERSION</version>
<build>
<sourceDirectory>SRCFOLDER</sourceDirectory>
<testSourceDirectory>TESTFOLDER</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>local-artifactory</id>
<name>Artifactory</name>
<url>http://localhost:8081/artifactory/repo</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>local-artifactory-plugins</id>
<name>Artifactory Plugins</name>
<url>http://localhost:8081/artifactory/repo</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY1</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY2</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
所以我有地方 - 聲明的原創存儲庫,意在每次都會重新載入所有內容。另外我有幾個依賴關係,它們是SNAPSHOTS。
現在我使用的是maven 3.0.5,當我編譯它時它工作正常,但它並不是刷新快照。決不。永遠。日誌文件看起來是這樣的:
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://localhost:8081/artifactory/repo
Downloading: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml
Downloaded: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml (314 B at 13.9 KB/sec)
[DEBUG] Writing resolution tracking file /opt/myuser/.m2/repository/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/resolver-status.properties
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Skipped remote update check for MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml, already updated during this session.
所以它不斷地抱怨說,它無法找到本地的maven-medatada.xml當然,他是完全正確 - 它不存在。並沒有做任何事情。
所以我試圖使用依賴:purge-local-repository來清除本地庫存並猜測是什麼?顯然它不能清除它,因爲每個工件中都沒有maven-metadata.xml,這是多麼神奇的功能!
.jar和.pom的每個.m2工件目錄包含maven-metadata-local-artifactory.xml(帶有來自artifactory的maven-metadata.xml的正確副本,current),_mave.repositories和resolver- status.properties。
Maven剛剛開箱即用,在.m2中沒有配置,並且/ conf文件夾中的配置是默認的,沒有任何更改。
更新:我剛從artifactory手動下載了maven-metadata.xml,並將其作爲maven-metadata.xml放置在.m2中以進行依賴 - 沒有任何作用,它仍然「缺失」它。所以我不知道它對我的要求了。它只是無法更新依賴項,因爲「在此會話期間已更新」。那麼我不知道它是什麼更新,但顯然是別的東西。
UPDATE2:Maven的metadata.xml中的服務器上的內容:
<metadata>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY1</artifactId>
<version>bla-SNAPSHOT</version>
<versioning>
<snapshot>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20130322155759</lastUpdated>
</versioning>
</metadata>
你如何將你的工件放入你的工藝品?你使用'mvn deploy'嗎? – ben75 2013-03-22 11:28:08
不,我正在使用ant/ivy和ivy:使用maven風格的存儲庫結構發佈它。是不是重要? – Eugene 2013-03-22 11:33:29
我想這是爲什麼元數據不存在。我從不使用ant/ivy在artifactory上部署maven artifact。無論如何:'mvn deploy'會將jar +元數據放入artifactory中,這是一條路。 (你也可以使用'mvn install:install-file'與'-DpomFile = your-pom.xml'或者最糟糕的如果你沒有pom文件:'-DgeneratePom = true' – ben75 2013-03-22 11:40:23