Maven: sin atributo de manifiesto principal, en target / xx.jar, no se puede ejecutar el archivo jar

Rahul Raj:

Aquí está el pom.xml:

<?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>dl4j</groupId>
    <artifactId>dl4j</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>example.JavaTestExample</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.deeplearning4j</groupId>
            <artifactId>deeplearning4j-core</artifactId>
            <version>1.0.0-beta3</version>
        </dependency>
        <dependency>
            <groupId>org.nd4j</groupId>
            <artifactId>nd4j-native-platform</artifactId>
            <version>1.0.0-beta3</version>
        </dependency>
        <dependency>
            <groupId>org.datavec</groupId>
            <artifactId>datavec-api</artifactId>
            <version>1.0.0-beta3</version>
        </dependency>
        <!--  You need the below dependency to use CodecRecordReader-->
        <dependency>
            <groupId>org.datavec</groupId>
            <artifactId>datavec-data-codec</artifactId>
            <version>1.0.0-beta3</version>
        </dependency>
        <!--       <dependency>
                   <groupId>org.bytedeco.javacpp-presets</groupId>
                   <artifactId>${moduleName}-platform</artifactId>
                   <version>${moduleVersion}-1.4.4</version>
               </dependency>-->
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>1.4.4</version>
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
            <version>1.4.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.8.0-beta4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.8.0-beta4</version>
        </dependency>
        <!--  You need the below dependency to use LocalTransformExecutor-->
        <dependency>
            <groupId>org.datavec</groupId>
            <artifactId>datavec-local</artifactId>
            <version>1.0.0-beta3</version>
        </dependency>
    </dependencies>
    <!-- Uncomment to use snapshot version -->
    <!--<repositories>
        <repository>
            <id>snapshots-repo</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>  &lt;!&ndash; Optional, update daily &ndash;&gt;
            </snapshots>
        </repository>
    </repositories>-->
</project>

Quería ejecutar maven-assembly-pluginy crear un archivo jar con todas las dependencias agregadas. Cuando corro java -jar jarfile.jar, aparece el siguiente error:

no main manifest attribute, in target/jarfile.jar

Revisé varias publicaciones de Stack Overflow para lo mismo y probé todas las permutaciones y combinaciones. Intenté agregar ambos assemblyy shadecomplementos. Puedes ver la configuración que tengo en mi pom.xml arriba. No estoy realmente seguro de cómo está sucediendo esto a pesar de que agregué la configuración de maven adecuada.

Verifiqué que Java está funcionando bien:

ingrese la descripción de la imagen aquí

Verifiqué si especifiqué la clase principal correctamente.

Todo se ve bien para mí, excepto los resultados, y estoy confundido en este momento.

¿Qué puede estar saliendo mal? Espero que algunos de ellos sigan marcando la pregunta como "duplicada", pero he estado leyendo otras publicaciones e intenté cambiar la configuración en consecuencia. Ninguno de ellos funcionó.

xtratic:

¡Pregunta de buena calidad!

Creo que esto te ayudará a lograr tu objetivo.

Esto es lo que uso para construir un JavaFX Jar en el que se puede hacer clic con todas las dependencias incluidas. Esto está usando maven-jar-pluginy en maven-shade-pluginlugar de maven-assembly-plugin; Aquí hay un buen recurso sobre las diferencias.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>10</release>
            </configuration>
        </plugin>
        <plugin>
            <!-- I think you don't need this one -->
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.6.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>${mainClass}</mainClass>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>
                            ${mainClass}
                        </mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>${mainClass}</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Ningún atributo de manifiesto principal en el archivo .jar

Error al ejecutar el archivo jar desde la línea de comando: "sin atributo de manifiesto principal"

"sin atributo de manifiesto principal" al intentar ejecutar fat jar

error al ejecutar un jar: "sin atributo de manifiesto principal"

Error de Heroku: sin atributo de manifiesto principal, en el archivo JAR para la aplicación de arranque de primavera

"Sin atributo de manifiesto principal" en ----. Jar Netbeans

Sin principal atributo de manifiesto, en server.jar

OpenShift: ningún atributo principal de manifiesto en el proyecto maven jar

No se puede especificar el atributo de manifiesto principal en Intellij

No se puede ejecutar el archivo jar en la línea de comandos con Maven

¿Por qué no se ha podido cargar el atributo de manifiesto de clase principal desde un archivo JAR?

SecurityException durante la ejecución del archivo jnlp (falta el atributo de manifiesto de permisos requeridos en el jar principal)

Jar de Java: sin atributo de manifiesto principal

IntelliJ Maven JAR "No hay error de atributo de manifiesto principal"

No se pudo cargar el atributo de manifiesto de clase principal mientras se ejecutaba java -jar

No se puede ejecutar el archivo jar ni en Cmd

No se puede ejecutar el archivo jar

¿Cómo producir un archivo JAR para el proyecto Maven existente sin (sin atributo manifest principal)?

No se pudo encontrar el atributo de manifiesto Premain-Class de un archivo jar

Error de Maven "No se puede inicializar la clase principal" cuando intento ejecutar un archivo jar que acabo de crear

No se puede ejecutar el archivo jar: no se pudo encontrar o cargar la clase principal Hello

Ejecutar Java JAR - ningún error manifiesto principal atributo

Implementar el archivo .war en el contenedor de Docker: sin atributo de manifiesto principal en app.war

Cómo ejecutar una clase desde Jar que no es la clase principal en su archivo de manifiesto

Creando Jar con Intellij 2016 - Sin atributo manifiesto principal

Maven - No se puede ejecutar JAR

No se puede encontrar el archivo de recursos en el JAR

Cómo configurar la clase principal en el archivo de manifiesto en jar producido por el proyecto NetBeans

El archivo Maven Jar no puede encontrar la clase principal

TOP Lista

CalienteEtiquetas

Archivo