Предотвращение разбиения толстых jar-файлов в dependencySet во время сборки maven-assembly-plugin - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть проект Maven, предназначенный для демонстрации одного из наших продуктов, который сам по себе является fat jar с несколькими зависимостями.Мы распространяем исходный код этих демонстраций в виде .zip файла, содержащего автономный проект Maven, который наши клиенты могут создавать и воспроизводить.

Я использую maven-assembly-plugin для создания пользовательской сборкинашего распределенного демонстрационного проекта.Я использую dependencySet, чтобы поместить JAR нашего продукта в каталог lib/ в окончательной сборке.Проблема в том, что maven-assembly-plugin разбивает нашу жирную банку на обычную банку (без зависимостей) и все зависимости от баночки. Я бы предпочел, чтобы плагин не разделял толстую банку, а просто поместил толстую банку в каталог lib/. Есть ли способ сделать это?

сборка.xml:

    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib/</outputDirectory>
            <includes>
                <include>our-product:jar</include>
            </includes>
            <outputFileNameMapping>our-product.jar</outputFileNameMapping>
        </dependencySet>
    </dependencySets>

pom.xml :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>DemoManager</mainClass>
            </manifest>
        </archive>
        <!-- Generates jar -->
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <!-- Generates distributed demo project -->
        <descriptors>
            <descriptor>src/assembly/assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-jar</id>
            <phase>package</phase>
            <goals>
                <goal>attached</goal>
            </goals>
        </execution>
    </executions>
</plugin>
...