我们有大量的应用程序.它们都有一个build.xml位于项目基目录中的文件.我正在尝试创建一个ant脚本,该脚本将通过并调用build.xml所有项目中每个文件的特定目标.
以下是问题:
我试图在属性文件中使用subant+ antfile并定义文件路径的CSV,但这不起作用.以下是我所拥有的和我得到的错误.
如果有更好的方法来做到这一点或者你知道我的问题是什么,请告诉我!谢谢!
这是属性文件中定义的属性.我希望运行脚本的人在这里添加相对于他们正在运行的脚本的当前位置的文件路径.
projects.to.build=
Run Code Online (Sandbox Code Playgroud)
这是我尝试在主构建脚本中使用的子任务.
<filelist
id="projectNames"
dir="${basedir}"
files="${projects.to.build}"
/>
<target name="debugAll" description="Builds all the projects listed in the projectNames.properties file.">
<subant target="debug" antfile="${projects.to.build}">
</subant>
</target>
Run Code Online (Sandbox Code Playgroud)
这是我在属性文件中定义项目时尝试运行构建脚本时得到的错误.我正在使用相对路径.例如:..\Apps\AnApp1\build.xml,..\Apps\AnApp2\build.xml,..\OtherApps\foo\AnotherApp1\build.xml
"No Build Path Specified" (at my subant task)
Run Code Online (Sandbox Code Playgroud)
Mar*_*nor 12
您指定了antfile属性,因此ANT期望单个build.xml文件.
该subant文档描述了如何使用一个文件集作为子参数.
这是一个例子:
<project name="Subant demo" default="run-debug-target">
<target name="run-debug-target">
<subant target="debug">
<fileset dir="." includes="**/build.xml" excludes="build.xml"/>
</subant>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
或者,可以使用文件列表:
<project name="Dry run" default="run">
<target name="run">
<subant target="test">
<filelist dir="projects" files="one/build.xml,two/build.xml,three/build.xml,four/build.xml"/>
</subant>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
处理以下构建文件:
| 归档时间: |
|
| 查看次数: |
7286 次 |
| 最近记录: |