2011-04-25 4 views

답변

29

maven-war-plugin을 사용하여 알아 냈습니다. 아래의 구성을 참조하십시오 :

<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

'http : // example.com/versioninfo.txt'와 같이 웹 URL을 통해 그러한 버전 정보를 읽는 것에 관심이 있다면'versioninfo.txt' 템플릿을 필터링 할 수 있습니다.이 템플릿에는'$ {project .version}'을 사용하고 버전 파일을 전쟁에 포함 시키십시오 (http://www.taringamberini.com/en/howto/java/2015/including-release-info-into-war/). -war-plugin'. – taringamberini

-1

버전을 원하는 manifest.mf에 ${project.version}을 넣으십시오. 이 기능을 작동 시키려면 자원 플러그인이 필요하다고 생각합니다. 따라서 인력이 리소스를 '파일'에 포함 시키면 리소스가 병 파일에 포함됩니다.

+0

을하지만 매니페스트 파일은 자원이 아니다. 빌드시 생성됩니다. 맞습니까? 빌드시 생성되면 자원으로 처리되지 않습니다. 내가 뭔가를 오해하고 있니? –

+0

@Matthew 그것은 리소스가 될 수 있지만 잘못된 접근 방법입니다. 맞습니다. 파일은 maven-war-plugin에 의해 즉석에서 생성됩니다. 귀하의 대답은 정확합니다. – yegor256

17

을 또는 당신은 또는 addDefaultSpecificationEntries에게 project.version 특성 등 여러 가지 항목을 추가합니다 플래그를 addDefaultImplementationEntries를 사용할 수 있습니다.

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} 

기본 값입니다. 속성이 정의되지 않은 경우 (예 : project.organization.name) 해당 행이 매니페스트에서 제외됩니다.

다음과 같이는 받는다는 전쟁 - 플러그인 구성에 갈 수 :

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archive> 
      <manifest> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 
관련 문제