2011-04-25 7 views

Odpowiedz

29

Wyliczyłem to za pomocą wtyczki maven-war. Patrz poniższy konfigurację:

<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

Jeśli jesteś zainteresowany czytaniem informacji o wersjach za pośrednictwem adresu URL strony internetowej, na przykład w 'http: // example.com/versioninfo.txt' możesz filtrować szablon' versioninfo.txt', który zawiera twój '$ {projekt .version} 'i [dołącz plik wersji do wojny] (http://www.taringamberini.com/en/howto/java/2015/including-release-info-into-war/) za pomocą' maven -war-plugin'. – taringamberini

-1

Umieść ${project.version} w manifeście.mf tam, gdzie chcesz wersję. Aby to zadziałało, uważam, że potrzebujesz wtyczki zasobów, aby manven "filtrował" zasoby, ponieważ są one zawarte w pliku wojny.

+0

Ale plik manifestu nie jest zasobem. Jest generowany w czasie kompilacji, prawda? Jeśli zostanie wygenerowany w czasie kompilacji, nie zostanie przetworzony jako zasób. Czy coś nie rozumiem? –

+0

@Matthew może to być zasób, ale jest to niepoprawne podejście. Masz rację, plik generowany jest w locie przez wtyczkę maven-war. Twoja odpowiedź poniżej jest poprawna. – yegor256

17

Albo można użyć addDefaultImplementationEntries lub addDefaultSpecificationEntries flagi, która będzie dodać kilka wpisów w tym nieruchomości 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} 

Wartość domyślna dla obu jest fałszywe. Jeśli właściwość nie jest zdefiniowana (np. project.organization.name), wiersz ten zostanie wykluczony z manifestu.

To może przejść do konfiguracji Maven-war-plugin następująco:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archive> 
      <manifest> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 
Powiązane problemy