我有一個多模塊maven項目:模塊A依賴於模塊B.當模塊B建立時,它命名爲ModuleB.jar並複製到目標目錄。現在,在模塊A的POM我必須把maven多模塊依賴版本
<dependency>
<groupid>com.mycompany.app</groupid>
<artificatId>ModuleB</artifactId>
<version>1.0</version>
</dependency>
我必須把版本號,但那麼現在我有兩個相同的模塊B瓶:ModuleB.jar
(在名稱中沒有版本)和ModuleB-1.0.jar
在沿有ModuleA.jar目標目錄。
我更喜歡從罐子的最後名稱保持版本號了,因爲我們還有其他遺留應用程序依賴於這些罐子
反正有添加模塊B作爲沒有版本號的模塊A的POM的依賴?任何干淨的解決方案,或者我只是讓自己生活困難?
編輯: 澄清:這些模塊是從父pom作爲jar包構建的,並且將它們及其依賴關係複製到項目父目錄之外的目標目錄。因此,有兩個ModuleB JAR的原因:一個是當模塊B被編譯和打包時,最終名稱被設置爲ModuleB.jar,另一個是當模塊A與其依賴關係一起被編譯和打包,其中包括模塊B但名稱爲ModuleB- 1.0.jar
謝謝!
複製的依賴執行(我可以帶出副本中的版本,但我會失去對第三方jar文件的版本,如春瓶= /):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${build.dir}/lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>false</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
作爲一個起點,如果它是一個多模塊項目,所有模塊都使用相同的版本構建,那麼您應該能夠指定$ {project.version},而不必一直更新。我不認爲這會解決你的實際問題。這兩個moduleB jar是否相同(如同樣的校驗和所有內容)只是名稱不同? –
@GerardRyan是的ModuleB罐子是完全相同的只是不同的名稱。看看我編輯的編輯,它會解釋發生了什麼 –
你可以包括你用來複制依賴關係的父pom xml嗎?我認爲解決方案可能會從依賴副本中排除模塊B. –