<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name="upload_single">
<propertycopy name="svn.code.path" from="${module}.${version}" />
<ant inheritAll="false" antfile="./deploy_func.xml" target="main">
<property name="log.name" value="download_code_${module}_${version}.log"/>
<property name="func.name" value="download_code"/>
<property name="svn.code.path" value="${svn.code.path}"/>
<property name="local.code.path" value="${local.code.path}/${module}_${version}"/>
<property name="backup.path" value="${backup.path}/${module}_${version}"/>
</ant>
</target>
<target name="check_fail">
<available file="./operation.fail" property="result"/>
<fail message="upload_version_${module} failed" if="result" />
</target>
---
<target name="main" depends="inital_main">
<record name="${log.path}/${log.name}" action="start" />
<antcall target="${func.name}"/>
<record name="${log.path}/${log.name}" action="stop" />
</target>
<target name="download_code" depends="inital_download_code,move_code">
<echo message="***start to download '${svn.code.path}'."/>
<exec dir="." executable="cmd.exe" failonerror="false" resultproperty="result.download">
<arg line="/c svn checkout --username ${svn.user} --password ${svn.passwd} --no-auth-cache --force '${svn.code.path}' '${local.code.path}'"/>
</exec>
<antcall target="check_resultproperty">
<param name="result" value="${result.download}"/>
<param name="description" value="download '${svn.code.path}'"/>
</antcall>
<echo message="***end to download '${svn.code.path}' to '${local.code.path}'."/>
</target>
<target name="check_resultproperty">
<if>
<equals arg1="${result}" arg2="0" />
<then>
<echo message="${description} successfully."/>
</then>
<else>
<echo message="${description} failed!" file="./operation.fail"/>
<fail message="${description} failed!"/>
</else>
</if>
</target>
分享到:
相关推荐
1. **通过`<ant>`任务调用**: Ant提供了`<ant>`任务,允许我们在一个构建文件中调用另一个构建文件。例如,我们可以这样写: ```xml <ant antfile="path/to/other/build.xml" target="some-target-in-other-build...
在软件开发过程中,Ant 是一个常用的构建自动化工具,它基于 XML 来定义任务,能够编译、测试、打包和部署应用程序。在 Ant 中调用 Java 类是常见的需求,特别是在执行自定义逻辑或需要运行特定 Java 程序时。本文将...
通过`property`定义的`argpath`值会被传递给`test.bat`,然后`test.bat`可以调用其他子批处理文件,如`abc.bat`,完成更复杂的操作。 通过这种方式,Ant不仅可以管理Java项目,还可以集成其他系统级别的操作,增强...
要让Java程序调用Ant执行构建任务,可以利用`org.apache.tools.ant.Project`类。首先需要创建一个`Project`实例,并加载`build.xml`文件,然后调用`Project#executeTarget`方法来执行指定的目标。 ```java import ...
`<java>`任务就是Ant中用于直接运行Java类或JAR文件的任务,这使得在构建流程中调用Java子程序成为可能。 要调用Java子例程,你需要在build.xml文件中定义一个`<java>`任务。基本结构如下: ```xml <!-- ...
Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建...
ant1.8 安装文件,Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是存Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一...
6. **外部工具集成(Integration with External Tools)**:除了Java相关的任务,Ant还可以调用其他命令行工具,如JUnit进行单元测试,或者Proguard进行代码混淆。在Ant 1.6.5中,这种集成已经相当成熟。 7. **插件...
在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式...
Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件,所以和容易维护和书写,而且...
3. `subant`: `subant`任务用于在子目录或者其他的Ant构建文件中递归地运行Ant任务。这在处理大型项目结构时非常有用,尤其是当项目由多个子项目组成,每个子项目都有自己的构建文件时。`subant`可以根据指定的目标...
首先,Ant的XML结构非常清晰,每个任务(元素)都有一个名称,可以被其他任务调用或者作为命令行参数执行。例如,可以定义一个名为`compile`的目标来编译源代码,一个名为`test`的目标来运行单元测试,然后一个名为`...
Ant提供了`javadoc`任务来调用Javadoc。在`build.xml`文件中,你需要定义一个`javadoc`任务,指定源代码路径、输出目录以及可能的选项,如作者、版本信息等。例如: ```xml **/*.java"/> ``` 执行这个...
9. **多项目构建**:大型项目可能包含多个子项目,Ant可以通过导入其他构建文件或使用`<project>`标签的`subant`任务来管理这样的多项目结构。 10. **部署支持**:Ant不仅限于开发过程,还可以帮助部署应用程序到...
文件集是Ant处理一组文件的方式,可以指定文件或目录的模式,如`**/*.java`匹配所有子目录下的Java源文件。它们在任务中作为参数使用,如`<javac>`任务可以接受一个文件集来编译指定的源文件。 7. **条件...
每个标签都有其特定的属性和子元素,理解并熟练使用这些标签是掌握Ant的关键。 "ant案例"涵盖了各种实际场景的应用,比如如何配置Ant来编译Java项目、打包JAR文件、生成WAR文件以部署到Web服务器,甚至如何执行单元...
一旦添加成功,Ant脚本就可以直接调用"ant-contrib"提供的任务,无需额外配置。 四、实例解析 假设我们需要对一个目录下的所有子目录进行编译操作,可以使用"for"任务来实现。以下是一个简单的示例: ```xml ...
- Ant通过调用`<junit>`任务运行测试用例,可以指定测试类、测试方法,以及生成XML格式的测试报告。 - 测试结果可以通过Ant的其他任务,如`<junitreport>`,进一步处理和展示。 5. **邮件通知**: - 若需要在...