我可以在Maven中构建一个单独的依赖JAR并编译JAR吗?

时间:2014-12-18 09:32:54

标签: java maven jar

我的开发群集是互联网连接的后面,只能定义为"蜗牛速度"这使得测试我的Java应用程序的过程非常缓慢,需要在每次更改时上传到集群。

是否有可能让Maven构建一个包含我可以经常上传到我的服务器(小JAR)的编译类的JAR,并构建一个单独的JAR,其中包含我的Maven定义的依赖项(大型JAR),只有在依赖变化发生?那我怎么会在集群上合并依赖项和编译类Jar?

1 个答案:

答案 0 :(得分:0)

如果您的应用程序使用单个Maven项目并且您在Maven中使用标准约定,那么您已经使用已编译的类构建了一个jar文件。 jar文件实际上是Maven项目的输出。如果你运行

mvn install

您将在

中的jar文件中获取已编译的类
<your home dir>\.m2\repository\<yourGroupId>\<yourArtifactId-versionNumber.jar>

如果您只更改了自己的代码,则只需在更改后上传到群集即可。

在项目上运行mvn install后,依赖项将安装在

<your home dir>\.m2\repository\<dependencyGroupId>\<dependencyArtifactId-versionNumber.jar>

如果您想将所有依赖项jar复制到一个特定文件夹,可以使用Maven Dependency plugin,特别是其中一个目标dependency:copy or dependency:copy-dependencies

这将为所有依赖项提供单独的jar文件。你要求他们在一个jar文件中,为此,我建议问题的答案: How to put all dependencies in separate folder for runnable jar?

但是,保留单独的jar还可以让您只上传更改的依赖项。这可能对您更有意义,因为您希望尽可能少地为群集使用带宽。由于依赖项只会在您更改pom.xml文件时发生更改,因此您知道它们何时发生更改,并且这是您必须将依赖项重新上载到群集的唯一时间。所有其他时间你只需要上传自己编译的类。