在maven依赖插件中使用本地jar作为工件?

时间:2015-04-07 15:33:38

标签: java maven jar maven-plugin

我们有一个maven项目,我们在其中使用一些在任何远程存储库中都不存在的工件。它们包含在我们项目的某个目录中,例如/ lib,作为已编译的.jar文件。其中一些是"普通"我们可以使用范围系统+ systemPath从/ lib中使用的依赖关系,但是有一个工件应该与maven-dependency-plugin unpack目标一起使用。 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?

中获取

1 个答案:

答案 0 :(得分:0)

而不是从/ lib中获取,如果设置自己的Nexus / Artifactory / etc ...现在有点儿了,你可以将jar添加到本地存储库。每个人都必须在他们自己的计算机上执行此操作,但是一旦在那里,它将可用于该计算机上的所有maven构建的项目,因此您不必为每个项目都有/ lib副本。如果您自己编译该jar并且它是一个maven项目,您可以执行“mvn install”并将安装到您的本地仓库。请注意,mvn包不会安装到您的本地仓库。

如果这是第三方jar,您可以使用mvn install:install-file来执行此操作。为此,请按照https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html上的说明操作。

希望这有帮助!

更新:通过本地存储库,我的意思可能与您在评论中提到的不同 - 我的意思是每个用户计算机上的本地存储库,而不是内部网本地的存储库服务器。对不起,如果这引起任何混淆:)