Java 如何从超级pom文件创建聚合fat jar?

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

我有一个聚合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://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