我正在从事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。
答案 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文件夹和系统路径的解决方案,并且会引起麻烦。