2011-04-05 11 views
10

Tengo un git repo donde el directorio de nivel superior tiene tres directorios: java, COM y csharp. Como se puede adivinar, el pom.xml vive en el directorio java.maven release plugin, git, and the pom no está en la parte superior

Todo está bien hasta que vaya a ejecutar el complemento de lanzamiento. Clona todo el repositorio en el destino/pago y luego espera que el pom esté allí en la parte superior. No lo es Fin de la historia.

¿Puedo decir el complemento de publicación sobre el directorio adicional, o tengo que dividir el repro?

+0

No comprobado: ¿tal vez pomFileName es tu amigo? – Bittrance

Respuesta

18

probados: añadir lo siguiente a la sección de construcción/plugins:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.1</version> 
    <executions> 
     <execution> 
      <id>default</id> 
      <goals> 
       <goal>perform</goal> 
      </goals> 
      <configuration> 
       <pomFileName>subdir/pom.xml</pomFileName> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Donde "subdirectorio" es la ruta relativa al directorio donde reside el pom.xml.

Esto funciona, al menos con Maven 3.0.3. Puede funcionar con diferentes versiones de complemento de versión, pero esto no se ha probado.

Esto funciona con Maven 3.0.4 y maven-release-plugin 2.5 y git 1.8.x.

+0

Funciona también en Maven 2.2.1 (con maven-release-plugin: 2.2.1). Pero ¿por qué tenemos que definir el 'pomFileName' en la jerarquía' executions' y no directamente en 'configuration'. ¿Muchísimas cosas allí para una sola línea de configuración? –

+0

Bueno, la razón por la que lo puse en 'executions' fue dirigir la configuración al objetivo específico. Si está seguro de que no interferirá con otros objetivos, probablemente funcione directamente en 'configuración'. – sunspot

+0

Si bien esto parece funcionar con maven 3.0.4, no compromete cambios en el repositorio de Git. El uso del último complemento de lanzamiento compromete los cambios, pero no reconoce la configuración pomFileName. – fortuna

2

La versión de Perfoming no se implementó correctamente en el directorio no raíz con maven-release-plugin versión 2.4 (con maven 3.0.3 y 3.0.4). La degradación a maven-release-plugin versión 2.2.1 solucionó el problema.

+0

usando maven 3.0.4, no funcionaba también con la versión 2.1 (heredada de sonatype OSS pom). Tuve que usar 2.2.1 también. –

Cuestiones relacionadas