2011-04-25 9 views

Respuesta

29

Lo descubrí usando el plugin maven-war-plugin. Ver la configuración a continuación:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1.1</version> 
    <configuration> 
     <archive> 
      <manifestEntries> 
       <version>${project.version}</version> 
      </manifestEntries> 
     </archive> 
    </configuration> 
</plugin> 
+0

Si le interesa leer dicha información de versiones a través de la URL web también, por ejemplo en 'http: // example.com/versioninfo.txt' puede filtrar una plantilla' versioninfo.txt', que contiene su '$ {proyecto .version} ', y [incluir el archivo de versión en la guerra] (http://www.taringamberini.com/es/howto/java/2015/including-release-info-into-war/) utilizando el' maven -war-plugin'. – taringamberini

-1

Ponga ${project.version} en su manifest.mf donde desea que sea la versión. Para que esto funcione, creo que necesita el complemento de recursos para que manven 'filtre' los recursos, ya que están incluidos en su archivo war.

+0

Pero el archivo de manifiesto no es un recurso. Se genera en el momento de la construcción, ¿correcto? Si se genera en tiempo de compilación, no se procesará como recurso. ¿Estoy malentendiendo algo? –

+0

@Matthew puede ser un recurso, pero es un enfoque incorrecto. Tienes razón, el archivo se genera al vuelo por maven-war-plugin. Tu respuesta a continuación es correcta. – yegor256

17

O puede utilizar los addDefaultImplementationEntries o addDefaultSpecificationEntries banderas que se sumarán varias entradas incluyendo la propiedad project.version.

addDefaultImplementationEntries

Implementation-Title: ${project.name} 
Implementation-Version: ${project.version} 
Implementation-Vendor-Id: ${project.groupId} 
Implementation-Vendor: ${project.organization.name} 
Implementation-URL: ${project.url} 

addDefaultSpecificationEntries

Specification-Title: ${project.name} 
Specification-Version: ${project.version} 
Specification-Vendor: ${project.organization.name} 

valor predeterminado para ambos es falsa. Si una propiedad no está definida (por ejemplo, project.organization.name), esa línea se excluirá del manifiesto.

Esto podría entrar en la configuración experto en la guerra-plugin de la siguiente manera:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archive> 
      <manifest> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 
Cuestiones relacionadas