簡體   English   中英

使用本地jar作為Maven依賴插件中的工件?

[英]Use local jar as artifact in maven dependency plugin?

我們有一個Maven項目,其中我們使用了一些遠程存儲庫中不存在的工件。 它們作為已編譯的.jar文件包含在我們項目的某個目錄(例如/ lib)中。 其中一些是“普通”依賴項,我們可以使用范圍系統+ systemPath在/ lib中使用,但是應該將一個工件與maven-dependency-plugin拆包目標一起使用。 pom.xml的相關部分如下所示

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-dependency-plugin</artifactId>
   <executions>
       <execution>
           <id>unpack-resources</id>
           <phase>generate-resources</phase>
           <goals>
               <goal>unpack</goal>
           </goals>
           <configuration>
               <artifactItems>
                   <artifactItem>
                       <groupId>xxx.yyy.zzz</groupId>
                       <artifactId>ourartifact</artifactId>
                       <outputDirectory>${target.directory}/somedir</outputDirectory>
                       <includes>
                           files1/**,files2/**,files3/**
                       </includes>
                   </artifactItem>
               </artifactItems>
           </configuration>
       </execution>
   </executions>
</plugin>

但是,這仍然嘗試到達遠程存儲庫並從那里獲取工件,這當然不會成功。 我們能否以某種方式實現也嘗試從/ lib提取此工件的情況?

與其從/ lib中獲取數據,不如現在設置自己的Nexus / Artifactory / etc ...,您可以將jar添加到本地存儲庫中。 每個人都必須在自己的計算機上執行此操作,但是一旦到達該位置,該計算機上的所有Maven構建項目都可以使用它,因此您不必為每個項目都擁有/ lib副本。 如果您自己編譯該jar,並且它是一個Maven項目,則可以執行“ mvn install”,它將安裝到本地存儲庫中。 請注意,mvn軟件包不會安裝到您的本地存儲庫中。

如果這是第3方jar,則可以使用mvn install:install-file來執行此操作。 為此,請按照https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html上的說明進行操作。

希望這可以幫助!

更新:通過本地存儲庫,我的意思可能與您在注釋中提到的含義有所不同-我的意思是每個用戶計算機上的本地存儲庫,而不是Intranet本地的存儲庫服務器。 對不起,如果引起任何混亂:)

暫無
暫無

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

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