[英]How do I get Maven to ignore local project for local repository version
我有一個多模塊 maven 項目,我們在其中遮蔽 Google 的 Guava 以將包重新定位到 package 樹中,這樣我們就不必擔心版本沖突。 我知道這是一種相當普遍的做法。
構建 jar 與構建系統一樣工作正常。 但是,在 Maven 中執行 site:site 目標時,它會調用 compiler:testCompile,此時找不到重定位的類。 讓我指出,早期的 testCompile 工作得很好。
我懷疑這是因為 maven 着色項目是失敗的項目的對等項目,並且在第二次 testCompile 執行期間,它找到了着色項目,查找並找不到要編譯的類,因此死亡。 在目標目錄中有一個正確命名的陰影 jar,它確實包含正在查找的類。
我想我想知道的是:是否有一種機制告訴 maven 在子模塊中查找 jar (源從未存在於那里)並跳過編譯的類? 我想作為最后的手段,我可以將剛剛構建的 jar 的內容提取到目標/類目錄中,以便可以找到它們。
任何援助將不勝感激。
我們過去也遇到過同樣的問題。 最后為着色人工制品和其他模塊提供了一個單獨的發布周期,而它們被保存在同一個 repo 中:
/pom.xml - root for all child modules, except the shaded one
/shaded/pom.xml - no ref to parent (no <parent> section), own release cycle
/module1/pom.xml - explicit ref to released version of shaded artefact
...
/moduleN/pom.xml
在 IDE 中,這些文件/pom.xml
和/shaded/pom.xml
作為單獨的項目導入。
這在以后變得更加有用,因為實際上一年只發生幾次重新構建陰影模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.