Я пытаюсь использовать плагин Assembly для включения зависимостей, а также
Вот мой плагин сборки
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>create-executable-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.sarm.myproject.XMLParser.LPUnMarshaller</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
вот мой дескриптор assembly.xml, я сделал id таким же, как descritpor ref, поскольку он создавал другую банку для этого дескриптора. Таким образом, у меня есть два дескриптора, один из которых представляет собой дескриптор jar-with-dependents ref, а один - нижний дескриптор, в этом случае происходит то, что он создает две банки, а вторая банка перезаписывает предыдущую банку. Как можно включить эти два в одну банку.
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<fileSets>
<fileSet>
<directory>${basedir}</directory>
<includes>
<include>*.xml</include>
</includes>
<excludes>
<exclude>30000dests.xml</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>${basedir}/test</directory>
<includes>
<include>*.xml</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Редактирование: я пробовал некоторые другие подходы, и я видел, что если я использую assembly.xml в качестве дескриптора, новый баннер создается вместе с любым другим банком по умолчанию, который также создается. Так что я получаю две банки. Метка по умолчанию - это исполняемый файл, такой как плагин jar. даже если плагин сборки настроен на наличие manifest.mf с моим основным именем класса, jar, созданный через assmbly.xml, не является исполняемым и имеет папку имени моего проекта с исполняемым банком внутри него.
Я использую mvn clean install для создания моего проекта и файла jar.
Вы должны создать два модуля, которые производят две банки. Обычно maven собирается создать один файл jar для каждого модуля с именем модуля в качестве имени jar. Maven рекомендует, чтобы каждый модуль имел один выходной артефакт.
Если у вас есть проблемы с дублированием кода. Вы можете наследовать соответствующий материал, имея родительский pom.