我試圖將我的struts2 web應用程序從guice2.0升級到guice3.0。 我試圖用maven碼頭測試它。 我已經成功升級我的pom.xml使用了3.0版本的正確版本的groupId,但如果我叫命令mvn碼頭:運行 我看到它正試圖下載 吉斯-3.0-no_deps.jar從maven中央資源庫下載guice3.0工件
它會引發構建錯誤,並且無法找到中央存儲庫?
如果我不包含任何guice擴展名,我不會收到此錯誤。
任何想法?
謝謝
我試圖將我的struts2 web應用程序從guice2.0升級到guice3.0。 我試圖用maven碼頭測試它。 我已經成功升級我的pom.xml使用了3.0版本的正確版本的groupId,但如果我叫命令mvn碼頭:運行 我看到它正試圖下載 吉斯-3.0-no_deps.jar從maven中央資源庫下載guice3.0工件
它會引發構建錯誤,並且無法找到中央存儲庫?
如果我不包含任何guice擴展名,我不會收到此錯誤。
任何想法?
謝謝
我把這個問題也發給了guice用戶組。 這是我收到的答案。
guice-3.0-no_deps.jar是一個用於編譯擴展的構建時工件,但在運行時不需要 - 它不在maven中心,因爲Guice團隊不希望人們依賴於這個「超級罐子「。這些擴展對guice-3.0-no_deps.jar具有可選的依賴關係(因此它們可以編譯),但它們對於運行時情況下的guice-3.0.jar也具有非可選的依賴關係。
行爲正常的maven插件應該會看到no_deps依賴項是可選的,如果缺少則不會拋出構建錯誤,所以這聽起來像是jetty插件中的一個錯誤。要解決此碼頭錯誤,你可以明確地掩蓋這種依賴關係如下:
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-struts2</artifactId>
<version>3.0</version>
<exclusions>
<exclusion>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
請注意,我們不能做到這一點在原構建POM,因爲我們做的原編譯時仍然需要no_deps依賴。
如果您提供一個最小pom文件來重現錯誤,將會有所幫助。 – Heri 2011-06-01 23:27:15