我有一个主构建文件,我用它来构建一系列Android项目.每个Android项目都引用相同的Android库项目(我称之为CoreLibrary).以下是我的子任务.
<target name="build" description="Builds (only) all applications">
<subant>
<target name="debug" />
<fileset refid="all-applications" />
</subant>
</target>
Run Code Online (Sandbox Code Playgroud)
问:有什么我可以做,以防止CoreLibrary被重新修建在我subant任务的所有应用程序集中每个Android项目?这将大大加快我的构建时间,所以我希望我能做些什么.
我们有大量的应用程序.它们都有一个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) 我有一个build.xml,看起来像这样
<target name="foo">
<subant failonerror="false" target="p1">
<fileset dir="." includes="build.xml"/>
</subant>
<subant failonerror="false" target="p2">
<fileset dir="." includes="build.xml"/>
</subant>
<subant failonerror="false" target="p3">
<fileset dir="." includes="build.xml"/>
</subant>
</target>
Run Code Online (Sandbox Code Playgroud)
当我做ant foo所有的子服务员同时运行.如何使它们顺序运行p1,p2,p3.