Maven Build Jar

时间:2018-10-17 05:09:49

标签: java maven build dependencies repository

我正在从事Maven项目,我有一个jar app-client.jar,它依赖于app-core.jar。所以我有一个app-client.jar的pom.xml,而pom.xml具有app-core的依赖关系,因此我们在此pom.xml中添加了app-core的依赖关系。 现在,我要在主项目中使用app-client.jar。因为此jar是在本地构建的,因此在远程存储库中不可用。因此,我确实添加了应用程序客户端,并且还指定了它将定位的位置存储库。 如下。

<repositories>
   <repository>
       <id>repo</id>
       <releases>
           <enabled>true</enabled>
           <checksumPolicy>ignore</checksumPolicy>
       </releases>
       <snapshots>
           <enabled>false</enabled>
       </snapshots>
       <url>file://${project.basedir}/../lib</url>
   </repository>
<repositories>
<dependencies>
   <dependency>
       <groupId>com.sample</groupId>
       <artifactId>app-client</artifactId>
       <version>1.0</version>
   </dependency>
</dependencies>

我也把我的罐子如下 [我的模块] / [com] / [示例] / [app-client] / [1.0] /app-client-1.0.jar

当我运行mvn clean install时,出现错误,找不到应用程序客户端的pom.xml。并建立失败。通常,当我使用单个jar时,它可以正常工作,但是如果我使用与其他jar具有依赖关系的jar,则会失败。

那么我该如何构建我的app-client jar和它们的pom,使其表现正常,也要部署app-core.jar。

2 个答案:

答案 0 :(得分:1)

首先,在构建app-client.jar时,构建一个包含app-core.jar依赖项的胖子。

接下来无法将app-client-1.0.jar复制到本地存储库的指定位置,请使用此命令class将此jar添加到本地存储库。

答案 1 :(得分:0)

如果使用app-client.jar构建mvn clean install,则它将安装到您的Maven本地存储库(.../.m2/repository)中。然后,同一台计算机上的任何其他项目都可以在其pom中引用它,而无需进一步的信息。因此,无需<repositories>条目。

如果要在同一项目上与多个人一起工作,请使用Nexus / Artifactory服务器共享罐子。

不建议使用带有lib文件夹和系统路径的解决方案,并且会引起麻烦。