簡體   English   中英

如何讓 Maven 忽略本地存儲庫版本的本地項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM