我的構建打破了新的機器,因爲其中一個存儲庫正在爲pom和jar而不是預期的404返回一個301頁面。依賴關係是asm:asm:1.3。它在中環,但Maven似乎並不在那裏。Maven 2.2.1存儲庫順序似乎是任意的
這裏是生成日誌的一個示例:
Downloading: http://download.java.net/maven/2/asm/asm/3.1/asm-3.1.pom
[INFO] Unable to find resource 'asm:asm:pom:3.1' in repository java.net2 (http://download.java.net/maven/2)
Downloading: http://repository.primefaces.org/asm/asm/3.1/asm-3.1.pom
[INFO] Unable to find resource 'asm:asm:pom:3.1' in repository prime-repo (http://repository.primefaces.org)
Downloading: https://repository.jboss.org/nexus/content/groups/public-jboss//asm/asm/3.1/asm-3.1.pom
[INFO] Unable to find resource 'asm:asm:pom:3.1' in repository jboss-public-repository-group (https://repository.jboss.org/nexus/content/groups/public-jboss/)
Downloading: http://maven.thebuzzmedia.com/asm/asm/3.1/asm-3.1.pom
[INFO] Unable to find resource 'asm:asm:pom:3.1' in repository The Buzz Media Maven Repository (http://maven.thebuzzmedia.com)
Downloading: http://maven.glassfish.org/content/groups/glassfish/asm/asm/3.1/asm-3.1.pom
185b downloaded (asm-3.1.pom)
[WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html>
<head><title>301' - RETRYING
Downloading: http://maven.glassfish.org/content/groups/glassfish/asm/asm/3.1/asm-3.1.pom
185b downloaded (asm-3.1.pom)
[WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html>
<head><title>301' - IGNORING
[WARNING] POM for 'asm:asm:pom:3.1:compile' is invalid.
下面是我的pom.xml的倉庫部分:
<repositories>
<repository>
<id>central</id>
<name>Central Maven Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
</repository>
<repository>
<id>java.net2</id>
<name>Repository hosting the jee6 artifacts</name>
<url>http://download.java.net/maven/2</url>
</repository>
<repository>
<id>prime-repo</id>
<name>Prime Technology Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
<repository>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<id>jboss-public-repository-group</id>
<layout>default</layout>
<name>JBoss Public Maven Repository Group</name>
</repository>
<repository>
<id>The Buzz Media Maven Repository</id>
<url>http://maven.thebuzzmedia.com</url>
</repository>
</repositories>
我沒有settings.xml文件。
從我所知道的,對澤西服務器1.3的依賴正在打破構建。它的pom.xml指定了現在不存在的存儲庫http://maven.glassfish.org/content/groups/glassfish
。但是我指定的所有其他存儲庫都按照我指定的順序進行了檢查。也就是說,除了中央之外的一切我如何讓Maven先檢查中央存儲庫?或者至少在使用依賴關係的poms中指定的存儲庫之前檢查Central?
對不起,我沒有資源來構建基礎結構只是爲了編譯Java程序,所以版本庫管理器是不可能的。根據sonatype文章,在我的情況下,更適合將存儲庫放在pom中。我有時與其他人協作,因此項目必須是可移植的 - 不依賴於用戶特定的配置。我明確定義了中央回購,因爲它沒有被考慮。它仍然不是,所以我發佈了這個問題。我沒有使用Maven 3,因爲它不會構建我的項目。也許我需要進一步調查Maven 3。 – 2012-04-09 17:34:43
剛剛有一臺Mac,並使用NetBeans的嵌入式Maven構建了該項目,該Maven是3.0.x.我根本不需要改變任何東西。在這臺機器上還沒有其他任何通過Maven構建的,所以從一開始它就是一個乾淨的環境。所以看起來很有希望。下一次我嘗試一個Centos部署 - 涉及到從源代碼構建 - 我會刺探使用3.0.x.如果這樣做,我會將您的答案標記爲Maven 3.0.x的建議。 – 2012-04-18 00:41:36
僅接受Maven 3.x建議。爲小團隊(像我這樣的團隊)建立基礎設施似乎是過度殺傷力。 – 2012-05-07 15:02:38