У меня есть агрегатный модуль Maven, который представляет собой многомодульный проект Maven, состоящий из супер POM. Этот агрегатный модуль состоит из нескольких вспомогательных проектов. В супер-POM агрегатного модуля я включил jar-зависимости, общие для подпроектов. В файле POM каждого подпроекта я включил банки, которые относятся только к этим проектам.
Супер 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>
Важным примечанием является то, что мой агрегатный модуль не содержит исходного кода, а только супер POM. Следовательно, нет и основного класса, и поэтому я не могу использовать плагин Maven Assembly. Мой основной класс находится в одном из подпроектов.
Как я могу создать файл JAR из Super POM агрегатного модуля?
Причина, по которой я хотел бычтобы получить jar из файла POM, я хотел бы продолжить использование ant для процесса сборки.
Я ожидаю, что последний jar из super POM содержит все зависимые jar, такие как junit, swingx-core, Swing-layout и т. д. как один толстый кувшин, который я могу включить в процесс сборки муравья.
Возможно ли это с maven? Я что-то упустил?
Я пытался изменить упаковку с pom на jar, но я получаю ошибку компиляции на mvn-install, говорящую "упаковка с jar недопустима. Проектам агрегатора требуется pom" в качестве упаковки ".
mvn-install и mvn-compile отлично работают, когда я использую упаковку как pom.