2016-07-21 3 views

答えて

0

大丈夫

私はversion.propertiesは、次の内容の私のJavaリソースフォルダ内のファイルをしている:私のpom.xmlに私はこの

<properties> 
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format> 
    <buildtime>${maven.build.timestamp}</buildtime> 
    <project.build.sourceEncoding>Cp1252</project.build.sourceEncoding> 
</properties> 

を持って、その後、

version.major=${version} 
version.build=${env.SVN_REVISION} 
version.date=${buildtime} 

.warを構築している間に記入された情報を読むために、私はセッションBeanにこのプロパティフィールドを持っています:

@ManagedProperty(value = "#{versionProperties}") 
private Properties versionProperties; 

とゲッターを生成することを忘れてはいけない

private void initializeVersionData() { 
    String mavenTimestamp = getVersionProperties().getProperty("version.date"); 
    // try to parse timestamp and reformat it 
    try { 
     // format of maven timestamp 
     DateTimeFormatter mavenFormatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmm"); 
     LocalDateTime date = LocalDateTime.parse(mavenTimestamp, mavenFormatter); 
     // desired format 
     DateTimeFormatter desiredFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); 
     versionData.put("Datum", date.format(desiredFormatter)); 
    } catch (RuntimeException e) { 
     logger.warn("couldnt parse time stamp, ignore if running locally"); 
     // fall back to maven timestamp 
     versionData.put("Datum", mavenTimestamp); 
    } 
    versionData.put("Version", getVersionProperties().getProperty("version.major")); 
    versionData.put("Build", getVersionProperties().getProperty("version.build")); 
} 

をすることによってそれを埋めます。

SessionBeanのから値を読み取るために、私は私のフッターテンプレートファイルにこれを得た:

<div style="text-align:right;float:right;"> 
    &#169; 2016 it-processing AG 
    <table style="width:120px;"> 
     <ui:repeat var="entry" 
      value="#{sessionBean.version.entrySet().toArray()}"><br/> 
      <h:panelGroup> 
       <tr> 
        <td>#{entry.key}: </td> 
        <td>#{entry.value}</td> 
       </tr> 
      </h:panelGroup> 
     </ui:repeat> 
    </table> 
</div> 

とで結果は:SVNのURLについては

result

、することができますそれをプロパティファイルにハードコーディングします。

EDIT:あなたは、ビルド・サーバとしてジェンキンスを使用する場合たぶん、これらのプロパティのいずれかが唯一の人口である、あなたはSVNのバージョン情報を抽出するためにbuildnumber-maven-pluginを使用することができ、それらの情報を取得するにはどれでしょうBuildNumberを

1

覚えてカント。プロパティを使用すると、これらの値をMANIFEST.MFファイルまたはビルドプロセス中にフィルタリングされた分離ファイルに入れることができます。または、そのような情報を含むJavaクラスをtemplating-maven-pluginで作成できます。

関連する問題