使用 Maven2 将多模块项目构建到单个 jar 中
Posted
技术标签:
【中文标题】使用 Maven2 将多模块项目构建到单个 jar 中【英文标题】:Build multi-module project into a single jar with Maven2 【发布时间】:2015-03-24 10:59:50 【问题描述】:我读过这个: maven: multi-module project assembly into single jar
对于该问题的公认答案,我的 maven 版本是 2.2.1,shade
需要 maven 3。
我的父 pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>myGroup</groupId>
<artifactId>x-all</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<modules>
<module>x-framework</module>
<module>x-adaptor</module>
<module>x-plugin</module>
<module>x-utils</module>
<module>x-offline</module>
<module>x-protocols</module>
</modules>
...
我只想构建一个包含
的x-all-1.0.0-jar-with-dependencies.jar
-
每个子模块类
每个子模块依赖类(需要自动解决依赖冲突)
一些资源文件(在
x-all/src/main/resources
)
我该如何构建它?
【问题讨论】:
@khmarbaise 我和我的队友尝试构建它至少 3 小时...尝试了数十种解决方案.. 您使用 maven 2.2 的原因是什么?不能升级到maven3吗? 【参考方案1】:添加另一个模块,例如,将其命名为x-package
。让x-package
依赖于该项目中的每个模块。而我们只需运行mvn package
和一个简单的assembly plugin
配置(jar-with-dependence
),我们就会在x-package
的目标目录中得到想要的jar。
【讨论】:
以上是关于使用 Maven2 将多模块项目构建到单个 jar 中的主要内容,如果未能解决你的问题,请参考以下文章