Java Maven构建Jar
我正在从事Maven项目,我有一个jar app-client.jar,它依赖于app-core.jar。所以我有一个pom.xml用于app-client.jar,pom.xml具有app-core的依赖性,所以我们在这个pom.xml中添加了app-core的依赖性。 现在我想在我的主项目中使用app-client.jar。因为这个jar是本地构建的,在远程存储库中不可用。因此,我添加了应用程序客户端,并指定了它将位于的位置存储库。 如下Java Maven构建Jar,java,maven,build,dependencies,repository,Java,Maven,Build,Dependencies,Repository,我正在从事Maven项目,我有一个jar app-client.jar,它依赖于app-core.jar。所以我有一个pom.xml用于app-client.jar,pom.xml具有app-core的依赖性,所以我们在这个pom.xml中添加了app-core的依赖性。 现在我想在我的主项目中使用app-client.jar。因为这个jar是本地构建的,在远程存储库中不可用。因此,我添加了应用程序客户端,并指定了它将位于的位置存储库。 如下 回购 真的 忽视 假的 文件://${projec
回购
真的
忽视
假的
文件://${project.basedir}/./lib
com.sample
应用程序客户端
1
我把我的罐子放在下面
[我的模块]/[com]/[sample]/[app-client]/[1.0]/app-client-1.0.jar
当我运行mvn clean install时,我得到一个错误,应用程序客户端的pom.xml找不到。而构建失败。通常,当我使用单个jar时,它工作正常,但如果我使用与其他jar有依赖关系的jar,它就会失败
因此,我如何构建我的应用程序客户端jar及其pom,使其行为正常,并同时部署app-core.jar。首先,在构建app-client.jar时,构建一个包含app-core.jar依赖项的胖jar
接下来,将app-client-1.0.jar复制到本地repo的指定位置不起作用,要将此jar添加到本地repo,请使用以下命令
mvn install:install file-Dfile=-DgroupId=-DartifactId=-Dversion=-dpacking=
如果您使用mvn clean install
构建app client.jar
,那么它将被安装到您的Maven本地存储库(...m2/repository
)。然后,同一台计算机上的任何其他项目都可以在其pom中引用它,而无需进一步的信息。因此无需输入
如果您想在同一个项目上与多个人一起工作,请使用Nexus/Artifactory服务器来共享JAR
使用lib文件夹和系统路径的解决方案已被弃用,并会造成麻烦。这里回答了相同的问题:在我的项目中,我有很多依赖项,因此我不想在给定的命令中添加列表。第二,如果我在项目的pom中添加app-core.jar依赖项,那么它也可以正常工作。但是它应该为app-client.jar自动部署。要使用app-client部署app-core,请构建一个胖jar。应该避免使用胖jar作为依赖项。Fat JAR纯粹用于创建独立的应用程序。您好,很抱歉回复太晚,谢谢您的更新。在我的例子中,app-client.jar和app-core.jar是由其他人提供的,我不是在我的机器上构建它。那样的话,我该怎么办?通过在.m2文件夹中添加jar将解决我的问题?您可以使用
mvn install:install file
在Maven本地存储库中本地安装jar。最好是自己检查项目并构建它们。更好的方法是使用Nexus/Artifactory这样的存储库管理器(如果其他工件来自开发团队中的其他人)。
<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>