Java 如何从超级pom文件创建聚合fat jar?
我有一个聚合maven模块,它是一个由超级POM组成的多模块maven项目。这个聚合模块由几个maven子项目组成。在聚合模块的超级POM中,我包含了子项目中常见的jar依赖项。在每个子项目的POM文件中,我都包含了仅特定于这些项目的JAR 超级POM如下所示:Java 如何从超级pom文件创建聚合fat jar?,java,maven-3,parent-pom,Java,Maven 3,Parent Pom,我有一个聚合maven模块,它是一个由超级POM组成的多模块maven项目。这个聚合模块由几个maven子项目组成。在聚合模块的超级POM中,我包含了子项目中常见的jar依赖项。在每个子项目的POM文件中,我都包含了仅特定于这些项目的JAR 超级POM如下所示: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>com.testproject</groupId>
<artifactId>testproject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>../../Projects/ProjectA</module>
<module>../../Projects/ProjectB</module>
<module>../../Projects/ProjectC</module>
</modules>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-core</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.jdesktop</groupId>
<artifactId>swing-layout</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
</project>
4.0.0
com.testproject
测试项目
1.0-快照
聚甲醛
../../Projects/ProjectA
../../Projects/ProjectB
../../Projects/ProjectC
朱尼特
朱尼特
4.12
org.swinglabs.swingx
swingx磁芯
1.6.3
org.jdesktop
摆动布局
1.0.3
一个重要的注意事项是,我的聚合模块不包含源代码,只包含超级POM。因此也没有主类,因此我不能使用Maven汇编插件。我的主课在其中一个子项目中。
如何从聚合模块的超级POM中创建jar文件
我希望从POM文件中获得一个jar的原因是我希望继续使用ant进行构建过程
我的期望是,超级POM的最后一个jar将所有依赖jar(如junit、swingx核心、swing布局等)作为一个胖jar包含在内
我可以将其包含在ant构建过程中
这对maven有可能吗?我错过什么了吗
我曾尝试将打包从pom更改为jar,但在mvn安装时出现编译错误,称“使用jar打包无效。聚合器项目需要使用“pom”作为打包”
当我使用打包作为pom时,mvn安装和mvn编译工作正常。也许是maven shade插件@克里斯蒂安·拉蒙·科尔特斯:还需要一个主类,如:org.sonatype.haven.HavenCli