2012-01-25 8 views
6

Git ve maven ve logback'i kullanıyoruz.Maven projesi için manifestodaki Uygulama-Sürüm alanındaki git SHA1 değeri nasıl alınır?

Bu, günlükteki yığın izlerinin yığın izlemede her satırı içeren kavanozun Uygulama-Sürümünü gösterdiği anlamına gelir (bkz. Örnek için http://logback.qos.ch/reasonsToSwitch.html#packagingData).

Geçerli yapının SHA1'ini, oluşturulmakta olan yapay belgenin açıklamasında bu alana paketleyebilirsek, kaynağın içindeki tek tek satırı içeren artefaktı oluşturan kesin kaynağın yerini bulmak çok kolaydır.

http://maven.apache.org/shared/maven-archiver/examples/manifestEntries.html uyarınca, bunu yapmanın yolu, pompanın maven-jar-plugin kısmında <key>value</key> hattına sahip olmaktır. Bu benim durumumda

[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] 

sonuçlanır

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

Ben bu doğru MANIFEST.MF dosyasında belirlenen alırım nasıl https://github.com/koraktor/mavanagaiata dan SHA1 alabilirsiniz düşünüldüğünde demek ki?

cevap

11

<Implementation-Version> öğesinin <manifestEntries> öğesinin içinde olduğunu ve <manifest> öğesinin olmadığını kontrol edin.

Örnek:

<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

Tamam, bu çalışır. Ben de bunları test ettim, tamam. Teşekkürler. –

+0

Die Versiosnummer von mavanagaiata ist mittlerweile 0.7.2. Dies şapka einige kleinere Probleme bei mir beseitigt (git-Archiv finden vb.) – kdoteu

İlgili konular