生成EAR文件时如何在代码中创建application.xml?
How to create application.xml in code when generate EAR file?
IBM RAD 允许从 IBM 门户项目导出 EAR。我正在编写一个项目来自动创建 ear 文件。如您所知,EAR 文件包括 WAR 文件和文件夹 META-INF(包括文件 application.xml)。但是如何在代码中创建文件 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>
扩展我关于保留 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
标记替换为 "My Enterprise App"
<replace casesensitive="true" file="application.xml">
<replacetoken>DISPLAY_NAME</replacetoken>
<replacevalue>My Enterprise App</replacevalue>
</replace>
同样,您可以将其他值作为标记保留在模板中 application.xml,并在运行时用实际值替换它们。
详情请见:ANT Replace Task
希望对您有所帮助
IBM RAD 允许从 IBM 门户项目导出 EAR。我正在编写一个项目来自动创建 ear 文件。如您所知,EAR 文件包括 WAR 文件和文件夹 META-INF(包括文件 application.xml)。但是如何在代码中创建文件 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>
扩展我关于保留 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
标记替换为 "My Enterprise App"
<replace casesensitive="true" file="application.xml">
<replacetoken>DISPLAY_NAME</replacetoken>
<replacevalue>My Enterprise App</replacevalue>
</replace>
同样,您可以将其他值作为标记保留在模板中 application.xml,并在运行时用实际值替换它们。
详情请见:ANT Replace Task
希望对您有所帮助