Soy nuevo en Maven. No se nada al respecto. Puedo descargar un código abierto maven formulario de proyecto Github. La abro en Eclipse. He modificado una sola línea a modificar el patrón de la fecha de este formato:
final String pattern = "%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n";
A esto
final String pattern = "%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p - %m%n";
Entonces, traté de producir el archivo JAR para el proyecto. El pom.xml que vienen con el proyecto descargado está usando el plugin de paquete de sombra.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${shade.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>name-of-pro-${project.version}</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>name.of.the.package.and.Mainclass</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
<filters>
<!-- This is necessary to avoid a java.lang.SecurityException -->
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
Por lo tanto, traté de archivo jar experto utilizando este comando:
mvn clean package
Sin embargo, cuando ejecuto el archivo jar producido mediante este comando:
java -jar app-0.2.0-SNAPSHOT.jar
Tengo el error (sin atributo principal de manifiesto).
no main manifest attribute, in app-0.2.0-SNAPSHOT.jar
Busqué el archivo MANIFEST.MF para comprobar si los atributos de allí, pero no encuentro la nube.
Nube alguien me ayuda si falta algún ajuste?
No se puede simplemente ejecutar un frasco.
O bien, tiene que especificar la ruta de clase completo en la línea de comandos o que necesita para construir el frasco como jar-with-dependencies
lo describe, por ejemplo aquí: