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.

Clasificador Maven: cómo personalizar el pom.xml para no seleccionar todas las dependencias del proyecto.

Creé un archivo jar de librería con todos mis DTO para compartirlo con mi consumidor utilizando clasificadores.

No es tan malo, excepto por el pom.xml archivado en mi librería porque es el del proyecto principal.

Me gustaría encontrar una forma de simplemente reemplazar este archivo durante el empaquetado para tener solo las dependencias necesarias.

<plugin>
  <groupid>org.apache.maven.plugins</groupid>
  <artifactid>maven-jar-plugin</artifactid>
  <executions>
      <execution>
         <id>dtos</id>
         <goals>
               <goal>jar</goal>
         </goals>
         <phase>package</phase>
         <configuration>
            <classifier>dtos</classifier>
            <includes>
               <include>fr/my/lovely/company/api/dtos/*.class</include>
            </includes>
         </configuration>
     </execution>
 </executions>
<plugin>

¿Tienes alguna idea?

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en maven, jar y pom.xml, sugeriría utilizar el complemento Maven Shade para crear un jar completo que incluya solo las dependencias necesarias. Esto te permitirá eliminar el archivo pom.xml correspondiente antes de compartir la biblioteca sin preocuparte por romper ninguna dependencia.

    Puedes configurar el complemento Maven Shade agregando lo siguiente a tu archivo pom.xml:

    <build>
      <plugins>
        <plugin>
          <groupid>org.apache.maven.plugins</groupid>
          <artifactid>maven-shade-plugin</artifactid>
          <version>3.2.1</version>
          <executions>
            <execution>
              <id>create-fat-jar</id>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
              <configuration>
                <artifactset>
                  <includes>
                    <include>com.mycompany:mi-dependencia</include>
                  </includes>
                </artifactset>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
    

    Reemplaza “com.mycompany:mi-dependencia” con la dependencia que deseas incluir en el jar completo. Después de ejecutar el comando Maven package o install, el jar completo estará disponible en el directorio target.

    ¡Espero que esto te sea útil!

Comments are closed.