3

我想知道是否可以使用 Maven 部署插件部署多个 jar?

4

3 回答 3

2

如果应该从一个模块部署 2 个或更多 JAR,请使用 assembly:single 的 maven-assembly-plugin 目标,并将附加设置为 true: http ://maven.apache.org/plugins/maven-assembly-plugin/single -mojo.html

于 2012-07-28T07:21:56.487 回答
1

是的你可以。将您想要部署其 JAR 的所有项目作为父项目的模块,然后当您部署父项目时,将部署所有子项目 JAR。

在此处查看教程:http: //www.sonatype.com/books/mvnex-book/reference/multimodule.html

于 2012-07-28T07:15:44.843 回答
1

正如 Nishant 评论的那样,有 2 个案例。

具有其依赖项的项目

假设您有一个主项目,例如一个框架,它会生成一堆 jar。因为它是一个大项目,它应该被拆分成许多小项目。但是有一个主项目可以驱动所有其他项目。简而言之,它是一个多 maven 项目

+-main-project/
+--src/
| +-- ...
+--pom.xml
|
+--submodule1
| +--src/
| +--pom.xml
+--submodule1
| +--src/
\ +--pom.xml

这将产生至少 2 个 jar(submodule1.jar 和 submodule2.jar)

多模块项目旨在处理这种关系。一个 mvn deploy 将部署所有 jars。

一个产生 N 个 jars 的简单项目

考虑您有一个具有多个来源的项目

+-main-project/
+--src/
| +--main/
| | +--java-core/
| | |--+/ClassA.java
| | +--java-entities/
| | |--+/ClassE.java
| | +--java-interfaces/
| | |--+/IClass.java
+--pom.xml

这将产生 3 个 jars(核心、实体、接口)。这永远不会成立!规则是 1 个 pom --> 1 个工件(在特殊情况下为 2 个,例如资源、zip、ejb-client...)

因此, mvn deploy 将无法在远程仓库中放置超过 1 个 jar。如果您找到解决方法(使用一些插件),那真是个坏主意。Maven 不是为此而设计的。但是,不用担心,您只需拆分项目以防万一。

我希望它足够清楚,因为您的第一条消息并不准确:)

于 2012-07-28T18:26:24.907 回答