Para crear un único archivo ejecutable jar Maven

Axel23:

Buenas tardes, Quiero usar el Maven Shade pluginempaquetar el jar-file. Pero cada generación crea 2 jar-limas.

¿Por qué? Y cómo hacer 1 jar-file lleno?

mi pom.xml:

<groupId>test</groupId>
<artifactId>task2_maven</artifactId>
<version>1.0</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <manifestEntries>
                                    <Main-Class>test.run.Runner</Main-Class>
                                    <Build-Number>1</Build-Number>
                                </manifestEntries>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

</build>

mi producción:

introducir descripción de la imagen aquí

Por favor, ayuda y quiero saber lo que estoy haciendo mal.

jirka.pinkas:

¿Por qué esto le molesta?

  1. Durante la fase de paquete, Maven creará objetivo / artefacto-version.jar
  2. Plugin de sombra se ejecutará y se cambiará el nombre de ese frasco de destino / original de un artefacto-version.jar y dar al JAR sombreado el nombre de destino / artefacto-version.jar

Así que simplemente ignorar objetivo / original de un artefacto que acaba version.jar contiene los resultados de (1)

Editar: Añadir este plugin y correr mvn clean installPero como yo estaba tratando de decir, no veo un punto de borrar el archivo

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <delete>
                                <fileset dir="${project.build.directory}" includes="original-*.jar" />
                            </delete>
                        </target>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=363424&siteId=1
Recomendado
Clasificación