2012-02-20 9 views
9

Tengo los siguientes complementos para crear un -sources.jar y desplegar un jar con nombre específico en un repositorio.Cómo implementar el archivo de orígenes con el jar utilizando deploy: deploy-file

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <version>${project.version}-r${buildNumber}</version> 
     <classifier>${env}</classifier> 
     <packaging>jar</packaging> 
     <file>${project.build.directory}/${project.build.finalName}.jar</file> 
     <url>${artifactory.url}/libs-release-local</url> 
     <repositoryId>artifactory.digiterre.com</repositoryId> 
     <pomFile>${project.basedir}/pom.xml</pomFile> 
    </configuration> 
</plugin> 

deseo de desplegar la *-sources.jar al mismo tiempo. He intentado agregar una segunda entrada de archivo e incluso un segundo complemento de implementación. Parece que tengo uno u otro archivo desplegado.

¿Es posible implementar ambas en una sola pasada usando deploy:deploy-file o tendré que configurar una segunda compilación de la ciudad del equipo solo para implementar las fuentes?

+0

Duplicado de http://stackoverflow.com/questions/4725668/how-to-deploy-snapshot-with-sources ¿y javadoc? –

+0

He visto esa publicación y he intentado con las sugerencias. Tampoco funciono ya que estoy desplegando un archivo con un clasificador específico. También jar-no-fork no funciona Maven arroja un error. – Yoztastic

+0

Está un poco sucio, pero tal vez use una tarea Ant de Maven que ejecuta una implementación desde la línea de comando? –

Respuesta

7

Cuando se utiliza maven-source-plugin, el frasco generada adjuntará automáticamente a proyectar artefacto (ajuste por defecto para this parámetro es 'verdadero') y si se ejecuta deploy que se desplegará junto con él. Por desgracia, no es necesario configurar por separado el complemento de implementación.

Desafortunadamente, no puede agregar el clasificador (${env} en su caso) a las fuentes jar. Por eso me gustaría usar la siguiente configuración:

... 
<artifactId>com.pie.mash.repo.mince-${env}</artifactId> 
<version>1.18-r${buildNumber}</version> 
... 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <version>2.1.2</version> 
     <executions> 
     <execution> 
      <goals> 
      <goal>jar-no-fork</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Además, me he encontrado this pregunta sobre SO. Puede usar la solución sugerida allí.

+0

usando la versión 2.1.2 explícitamente no arroja el error que estaba obteniendo previamente. – Yoztastic

+0

Sin embargo, las fuentes aún no se implementan utilizando este ejemplo. – Yoztastic

+0

@Yoztastic Debes invocar 'mvn clean deploy'. Y, como ya he mencionado, no es necesario configurar por separado el plugin deploy. –

1

mvn deploy:deploy-file solo despliega un solo artefacto. En su lugar, puede usar mvn deploy (que invoca mvn deploy:deploy) para implementar el artefacto, su pom junto con los artefactos adjuntos (como source y javadoc). Consulte la descripción general de los objetivos de maven deploy plugin.

+0

Estoy usando deploy: deploy-file url = http: //repo.xxx.xxx.com/content/repositories/peroo-snapshots/ repositoryId = peroo-snapshots groupId = com.xxx.ist.curo.testtalentClient artifactId = pet_client_osx version = $ {} CLIENT_VERSIONCITEST 0.0-SNAPSHOT embalaje = alquitrán clasificador = Ap _ $ {} SVN_REVISION file = $ ÁREA DE TRABAJO// TalentOSX/build/release/Talent.app.tar –

+0

variable de entorno CLIENT_VERSIONCITEST CWave3 debe cambia cada vez, pero no funciona en jenkins. –

1

Podemos utilizar deploy-deploy-file para cargar varios JAR (orígenes, pruebas, documentos) junto con el artefacto JAR principal. Solo necesitamos proporcionar esa información adicional para implementar: llamada a un plugin de despliegue de archivo. Las adiciones se indican en negrita en el siguiente comando:

mvn despliegue: desplegar-file = -dfile HolaATodos.jar -Durl = https://localhost/nexus/content/repositories/snapshots/ -DrepositoryId = instantánea -Dfiles = helloWorld-6.4.1.3.SNAPSHOT-sources. tarro, helloWorld-6.4.1.3.SNAPSHOT-tests.jar-Dtypes = frasco, tarro-Dclassifiers = fuentes, las pruebas de -DgroupId = com -DartifactId = helloWorld -Dversion = 6.4.1.3.SNAPSHOT -Dpackaging = tarro -Dpomfile = pom.xml

Tenemos que especificar la lista de archivos separados por comas Necesitamos especificar los tipos de esos archivos adicionales Necesitamos agregar información del clasificador para esos archivos adicionales

+0

por favor formatee la respuesta correctamente. Para detalles adicionales, verifique [respuesta] – ItamarG3

Cuestiones relacionadas