我有以下build.xml代碼。在這裏我修改了jar文件中的清單文件。在清單中,我想添加一些屬性,例如Asset-Name和Asset-Baseline。的buildInfo.properties嵌套屬性 - 在清單中讀取
內容爲如下:
articlelib_componentname=ABC component.
articlelib_baselineName=Baseline_1.
buslib_componentname=XYZ component.
buslib_baselineName=Baseline_2.
的build.xml: 我想動態傳遞的名稱即articlelib值,並從buildInfo.properties檢索值。我使用macrodef外部清單它的工作文件,但是當我使用相同的清單標記我無法使用它。我能有這個問題,或者替代解決方案周圍的工作傳遞動態值來體現,這樣我可以從builInfo.properties
<property name="name" value="articlelib" />
<property name="name_path" value="${name}_componentName" />
<property file="buildInfo.properties" prefix="buildInfo" />
<property file="buildInfo.properties"/>
<macrodef name="property-read">
<attribute name="name"/>
<attribute name="from"/>
<sequential>
<property name="@{name}" value="${@{from}_componentName}"/>
</sequential>
</macrodef>
<target name="test">
<echo>PRODUCT_NAME: ${name}</echo>
<property-read name="instance" from="${name}"/>
<echo>DYNAMIC PROPERTY VALUE: ${instance}</echo>
</target>
<target name="earchive" description="Generate the EAR file">
<jar destfile="${dir.dist}/${name}.jar">
<manifest>
<attribute name="Specification-Title" value="${name}" />
<property-read name="instance" from="${name}"/>
<attribute name="Asset-Component" value="${instance}" />
<echo>DYNAMIC PROPERTY VALUE: ${instance}</echo>
<attribute name="Asset-Baseline" value="${buildInfo.articleliblocal.baselineName}" />
</manifest>
</jar>
</target>
</project>
當我使用上面的屬性讀取微檢索值在清單標籤我得到以下錯誤:
構建失敗
H:\ Ant_Scripts_Testing \的hello.xml:27:清單不支持NE sted「適當的 ty-read」元素。 在org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.jav 一個:359) 在org.apache.tools.ant.UnknownElement.handleChild(UnknownElement.java:5 69) 在org.apache。 tools.ant.UnknownElement.handleChildren(UnknownElement.jav 一個:346) 在org.apache.tools.ant.UnknownElement.configure(UnknownElement.java:198 ) 在org.apache.tools.ant.UnknownElement.maybeConfigure (UnknownElement.jav a:160) at org.apache.tools.ant.Task.perform(Task.java:347) at org.apache.tools.ant.Target.execute(Target.java:357) 在org.apache.tools.ant.Target.performTasks(Target.java :385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools .ant.helper.DefaultExecutor.executeTargets(DefaultExe cutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.Main.runBuild (Main.java:758) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) 在org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) 引起的:class org.apache.tools.ant.taskdefs.Manifest不支持嵌套 ed「proper ty-read「元素。 在org.apache.tools.ant.IntrospectionHelper.throwNotSupported(內省 ionHelper.java:447) 在org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.jav 一個:349)