es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tarro gordo en NetBeans.

Quiero hacer un JAR grande que contenga las clases del proyecto y el archivo jar jdbc. Vi este código que se añade al archivo xml antes de la etiqueta .

Cuando lo pego, obtengo este error: POM con formato incorrecto, etiqueta no reconocida ‘target’. ¿Cómo solucionarlo en Netbeans por favor?

Este es todo el POM.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error te está diciendo que la etiqueta target no es reconocida en el archivo POM que has publicado. Esto es porque target no es una etiqueta válida para archivos POM.

    El código que has publicado en realidad es parte de un script Ant, no un archivo POM. Es usado para crear un JAR grueso que incluye no sólo las clases del proyecto, sino también el archivo JAR JDBC.

    Para resolver este problema, tienes dos opciones:

    Opción 1: Usar el script Ant como un paso de construcción separado.
    Puedes crear un script Ant separado que contenga el código que has publicado, y luego ejecutarlo como un paso de construcción separado después de que la construcción Maven se complete. De esta manera, puedes obtener el JAR grueso sin modificar el archivo POM de Maven.

    Opción 2: Usar un plugin Maven para crear el JAR grueso.
    Puedes usar un plugin de Maven como maven-shade-plugin o maven-assembly-plugin para crear el JAR grueso directamente desde el archivo POM de Maven. Estos plugins pueden configurarse para incluir las clases del proyecto y el archivo JAR JDBC en el JAR de salida.

    Para usar maven-assembly-plugin, agrega el siguiente código a la sección plugins de tu archivo POM:

    <plugin>
       <groupid>org.apache.maven.plugins</groupid>
       <artifactid>maven-assembly-plugin</artifactid>
       <version>3.3.0</version>
       <configuration>
          <descriptorrefs>
             <descriptorref>jar-with-dependencies</descriptorref>
          </descriptorrefs>
          <archive>
             <manifest>
                <mainclass>com.example.myapp.MainClass</mainclass>
             </manifest>
          </archive>
       </configuration>
       <executions>
          <execution>
             <id>make-assembly</id>
             <goals>
                <goal>single</goal>
             </goals>
          </execution>
       </executions>
    </plugin>
    

    Reemplaza com.example.myapp.MainClass con la clase principal de tu aplicación.

    Para usar maven-shade-plugin, agrega el siguiente código a la sección plugins de tu archivo POM:

    <plugin>
       <groupid>org.apache.maven.plugins</groupid>
       <artifactid>maven-shade-plugin</artifactid>
       <version>3.2.4</version>
       <configuration>
          <createdependencyreducedpom>false</createdependencyreducedpom>
          <transformers>
             <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainclass>com.example.myapp.MainClass</mainclass>
             </transformer>
             <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
                <resource>logback.xml</resource>
             </transformer>
          </transformers>
       </configuration>
       <executions>
          <execution>
             <phase>package</phase>
             <goals>
                <goal>shade</goal>
             </goals>
          </execution>
       </executions>
    </plugin>
    

    Reemplaza com.example.myapp.MainClass con la clase principal de tu aplicación. El segundo transformer, DontIncludeResourceTransformer, es opcional y se puede usar para excluir recursos específicos del JAR de salida.

    Después de añadir la configuración del plugin a tu archivo POM, ejecuta el comando mvn package para crear el JAR grueso. El archivo de salida JAR estará ubicado en el directorio target.

Comments are closed.