2017-03-02 68 views
0

IBM RAD允許從IBM門戶項目導出EAR。我正在編寫一個項目來自動創建ear文件。如您所知,EAR文件包含WAR文件和文件夾META-INF(包含文件application.xml)。但是,我如何在代碼中創建文件application.xml?如何在生成EAR文件時在代碼中創建application.xml?

例如,我想在我的build.xml文件來創建以下application.xml中,如何做到這一點:

<?xml version="1.0" encoding="UTF-8"?> 
<application id="Application_ID" version="6" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd"> 
<display-name>HTDKTTEAR</display-name> 
<module id="Module_1463815058194"> 
    <web> 
     <web-uri>HTDKTT.war</web-uri> 
     <context-root>HTDKTT</context-root> 
    </web> 
</module> 
</application> 

我的build.xml文件:

<target name="generateEar" depends="generateWar"> 
     <mkdir dir="./earbin/META-INF"/> 
     <manifest 
      file="./earbin/META-INF/MANIFEST.MF" 
      mode="update"> 
      <attribute name="Built-By" value="Jenkins CI"/> 
      <attribute name="Implementation-Version" value="#${env.BUILD_NUMBER} - r${env.SVN_REVISION} - ${env.BUILD_ID}"/> 
      <attribute name="Implementation-Title" value="${env.JOB_NAME}"/> 
      <attribute name="Built-Date" value="${TODAY}"/> 
     </manifest> 

     <move file="BUILD2TEST.war" todir="./earbin" /> 
     **<!-- How to create application.xml ? if it not available /> -->** 
     <jar destfile="${ear}"> 
      <fileset dir="./earbin" /> 
     </jar> 
    </target> 
+1

我會建議保持模板的application.xml一些替換鍵和在構建XML這個文件複製到META-INF和改變這些鍵以反映當前應用程序屬性。 – Sanjeev

+0

謝謝@Sanjeev,你可以舉例說明如何更改密鑰嗎? – taibc

回答

1

擴展上我對保留application.xml模板的評論。例如,我將DISPLAY_NAME作爲將在運行時替換的標記。

<?xml version="1.0" encoding="UTF-8"?> 
<application id="Application_ID" version="6" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd"> 
<display-name>DISPLAY_NAME</display-name> 
<module id="Module_1463815058194"> 
    <web> 
     <web-uri>HTDKTT.war</web-uri> 
     <context-root>HTDKTT</context-root> 
    </web> 
</module> 
</application> 

replace任務將在上面的application.xml取代「我的企業應用程序」 DISPLAY_NAME令牌

<replace casesensitive="true" file="application.xml"> 
     <replacetoken>DISPLAY_NAME</replacetoken> 
     <replacevalue>My Enterprise App</replacevalue> 
    </replace> 

同樣,你可以在你的模板的application.xml保持其它值令牌和替換它們運行時間與實際值。

有關詳細信息,請參閱:ANT Replace Task

希望這有助於

相關問題