2012-04-11 20 views
5

Estoy tratando de agregar valores personalizados en los pom.properties archivo que Maven genera en la ubicación META-INF/maven/${groupId}/${artifactId}Los valores personalizados en el archivo pom.properties Maven

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
      <archive> 
       <manifestEntries> 
        <build>${BUILD_TAG}</build> 
       </manifestEntries> 
       <addMavenDescriptor>true</addMavenDescriptor> 
       <pomPropertiesFile>${project.build.directory}\interface.properties</pomPropertiesFile> 
      </archive> 
    </configuration> 
</plugin> 

El contenido de los archivos interface.properties es

# Build Properties 
buildId=746 

Utilizando el documentation he señalado el elemento pomPropertiesFile a una propiedades externas, pero el archivo generado pom.properties todavía tiene el contenido predeterminado después de ejecutar mvn install

¿Cuál es el uso correcto del elemento pomPropertiesFile?

EDITAR

yo creo que el problema radica en org.apache.maven.archiver.PomPropertiesUtil. Si observa el método sameContents en el source, devuelve verdadero si las propiedades en el archivo externo son las mismas que las predeterminadas y falso si es diferente. Si el resultado de sameContents es falso, se ignorarán los contenidos del archivo externo.

Efectivamente, esto ya ha sido logged como un error

+0

¿Cómo es 'interface.properties'? –

+0

Es un archivo de propiedades estándar. – Pram

+0

No use "\" en Maven pom's. use el "/" en su lugar. – khmarbaise

Respuesta

0

Creo que es necesario colocar un fichero src/main/resources/META-INF/$ {groupId}/$ {artifactId}/interfaz. propiedades y deja que maven haga el trabajo de filtrado (configura el filtrado). El archivo se copiará automáticamente en target/META-INF/maven/$ {groupId}/$ {artifactId}/location.

+1

Este archivo se genera dinámicamente durante el proceso de compilación, por lo que no creo que colocarlo en el árbol de fuentes sea una buena práctica. – Pram

0

Ver https://issues.apache.org/jira/browse/MNG-4998

Maven 3 resolverá marcadores de posición de propiedad con entusiasmo al leer pom.xml para todos los valores propiedades que están disponibles en este momento. La modificación de estas propiedades más adelante no afectará a los valores que ya están resueltos en pom.xml.

Sin embargo, si el valor de la propiedad no está disponible (no hay un valor predeterminado), el marcador de posición no se reemplazará por el valor y aún se puede procesar más tarde como marcador de posición. Por ejemplo, si un complemento generará alguna propiedad durante la compilación, o si el marcador de posición es leído y procesado por un complemento durante algún paso de compilación.

Cuestiones relacionadas