簡體   English   中英

在檢查聯系之前,Maven構建依賴項

[英]Maven build dependencies before checking nexus

我正在使用命令構建我的多模塊項目

mvn clean deploy -DskipTests

該項目包含3個Maven模塊:A,B,C。

A不依賴任何東西。

B不依賴任何東西。

C取決於A。

我遇到一個很奇怪的情況,maven看到C依賴於A,然后決定從源代碼中構建A,而是決定檢查它的關系(因為我的.m2本地存儲庫不包含A),並且它獲取了舊版本然后繼續構建所有內容,但是當到達C時,它將使用舊版本的A並失敗。

如果我以離線模式運行構建,那么它將很好用,但是問題是我確實想在完成后將新的工件部署在nexus中,而maven離線模式限制了我這樣做。

我想知道我是否在做一些很奇怪的事情,這似乎很容易處理。

編輯:如果我登錄到nexus,並且手動刪除了所有舊工件,然后使用上面提供的命令進行構建,則一切正常。

編輯2:C取決於A的“提供”范圍,例如:

 <dependency>
     <groupId>com.test</groupId>
     <artifactId>application</artifactId>
     <scope>provided</scope>
     <type>jar</type>
 </dependency>

(版本在父pom的dependencyManagement部分中聲明)。

選項:

  1. 提交A,以便獲得最新的更改,C可以正常構建

  2. 使C依賴於A的特定版本。更新A的版本並使C依賴於它

原來問題與android中的Espresso Testing框架有關。 pom.xml中的一個android依賴項是使用<scope>test</scope>而不是<scope>provided</scope> ,這引起了描述的麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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