2012-01-25 23 views
6

Chúng tôi sử dụng git và maven và logback.Cách lấy giá trị git SHA1 trong trường Phiên bản triển khai trong tệp kê khai cho dự án Maven?

Điều này có nghĩa là dấu vết ngăn xếp trong nhật ký hiển thị Phiên bản thực hiện của bình chứa mỗi dòng trong dấu vết ngăn xếp (xem http://logback.qos.ch/reasonsToSwitch.html#packagingData để biết ví dụ). Vì vậy, nếu chúng ta có thể đóng gói SHA1 của bản dựng hiện tại vào trường đó trong tệp kê khai của tạo phẩm đang được xây dựng, rất dễ dàng để xác định nguồn chính xác từ git tạo ra tạo phẩm có chứa dòng riêng đó trong nguồn.

Theo http://maven.apache.org/shared/maven-archiver/examples/manifestEntries.html cách để thực hiện việc này là có một dòng <key>value</key> trong phần maven-jar-plugin của pom. Điều này sẽ trong trường hợp của tôi có nghĩa

<Implementation-Version>FooBar</Implementation-Version> 

mà kết quả trong

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.3:jar (default-jar) on project axsFTP: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.3:ja 
r for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'implementationVersion' -> [Help 1] 

Cho rằng tôi có thể nhận được SHA1 từ https://github.com/koraktor/mavanagaiata làm thế nào để có được điều này đặt đúng trong file MANIFEST.MF?

Trả lời

11

Kiểm tra xem <Implementation-Version> có nằm trong thành phần <manifestEntries> không và không phải là yếu tố <manifest>.

Ví dụ:

<build> 
    <plugins> 

     <plugin> 
     <groupId>com.github.koraktor</groupId> 
     <artifactId>mavanagaiata</artifactId> 
     <version>0.3.1</version> 
     <executions> 
      <execution> 
      <id>git-commit</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>commit</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <archive> 
      <manifestEntries> 
       <Implementation-Version>${mvngit.commit.id}</Implementation-Version> 
      </manifestEntries> 
      </archive> 
     </configuration> 
     </plugin> 

    </plugins> 
    </build> 
+0

Ok, công trình này. Nghĩ rằng tôi cũng đã thử nghiệm những thứ đó, ồ. Cảm ơn. –

+0

Die Versiosnummer von mavanagaiata ist mittlerweile 0.7.2. Dies hat einige kleinere Vấn đề bei mir beseitigt (git-Archiv finden vv) – kdoteu

Các vấn đề liên quan