maven 2 - subir - ¿Cómo excluyo las fuentes jar en mvn deploy?
maven profiles properties example (6)
Cuando ejecuto "mvn deploy: deploy", maven implementa 4 archivos jar en mi repositorio remoto interno.
Son:
[nombre-módulo] -1.jar
[nombre-módulo] -1.pom
[nombre-módulo] -1-sources.jar
[nombre-módulo] -1-tests.jar
En realidad, hay más archivos, como los archivos md5 y sha1, que se están implementando. Pero para simplificar, simplemente me salto estos archivos aquí.
¿Hay alguna forma de excluir [nombre-módulo] -1-sources.jar del proceso de implementación?
Una forma en la que puedo pensar es usar "mvn deploy: deploy-file", que me permite identificar qué jar desplegar. Pero como tengo una docena de módulos para implementar, será bueno si puedo configurar la exclusión de archivos de implementación en pom.xml. De lo contrario, tendré que escribir un script para desplegar.
Gracias,
Ricardo
¿Hay alguna forma de excluir [nombre-módulo] -1-sources.jar del proceso de implementación?
No genere fuentes si no quiere desplegarlas. Entonces, elimine lo siguiente (que debe tener en su POM) o colóquelo en un perfil que no use o excluya durante la publicación (me pregunto cuándo usará las fuentes en ese caso):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Implementar plugin maven site:
http://maven.apache.org/plugins/maven-deploy-plugin/index.html
Según lo que estoy leyendo allí, parece que puede excluir módulos de la implementación, pero no archivos individuales, al menos no todavía.
Si miras la página de objetivos:
http://maven.apache.org/plugins/maven-deploy-plugin/plugin-info.html
no muestra ninguna configuración específica del complemento para lo que está buscando. Como la página de objetivos se hace desde la clase de complemento, al observar las anotaciones, diría que no tienen la capacidad.
Una cosa que podría hacer sería hacer una compilación diferente que no cree los archivos jars que no desea crear, es decir, crear un paquete de ensamblaje diferente o similar para esa compilación, y hacer que la compilación se ejecute cuando esté intentando implementar Paquetes específicos.
Edit: koppernickus tiene una descripción completa de esto, te recomendaría que vieras su publicación.
Permítame asumir que no debe omitir la generación de fuentes para un módulo. En ese caso, esta sería una solución simple que te ayuda a manejar este escenario:
En la parte de ejecución de "maven-source-plugin" en la sección de complementos , establezca el atributo attach en false . Esta configuración generará el sources.jar para su módulo, pero no lo adjuntará a la lista de artefactos del proyecto.
El fragmento de ejemplo está aquí:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin.version}</version>
<executions>
<execution>
<id>module1-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<!-- The below specified attribute ''attach'' will disable the sources.jar not included in the artifact list -->
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Si no desea modificar su POM, puede omitir la creación del -Dsource.skip
fuentes agregando -Dsource.skip
a la línea de comandos mvn.
mvn deploy:deploy
Maven mvn deploy:deploy
todos los artefactos producidos durante el proceso de Maven (ciclo de vida predeterminado). Para no desplegar [module-name]-1-sources.jar
, simplemente debería (?) No producir uno. Si está utilizando maven-source-plugin
para adjuntar archivos de origen, simplemente no lo use más.
Si este no es el caso que está experimentando, proporcione más detalles:
- ¿Cómo genera el artefacto
[module-name]-1-sources.jar
(qué complemento genera este artefacto?) - ¿Por qué necesita generar fuentes pero no necesita implementarlas en el repositorio?
A partir de la versión 2.2
de maven-source-plugin
, puede omitir la generación de fuentes con una opción de configuración sin tener que colocar el complemento en un perfil en su pom principal:
<!-- Do not generate a source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<skipSource>true</skipSource>
</configuration>
</plugin>