`

Ant项目示例

    博客分类:
  • Ant
ant 
阅读更多
4. ant示例

4.1 新建目录编译文件

<?xml version="1.0" encoding="utf-8"?>
<project name="myAntProject" basedir="." default="package">
    <property name="compile" value="compile"></property>
    <target name="init"></target>
    <target name="preprocess" depends="init">
        <mkdir dir="${compile}"/>
    </target>
    <target name="complie" depends="init,preprocess"></target>
    <target name="package" depends="complie"></target>
    <target name="myCompile" depends="preprocess">
        <javac srcdir="src" destdir="${compile}"></javac>
    </target>
</project>


4.2 打包文件

<?xml version="1.0" encoding="utf-8"?>
<project name="myAntProject" basedir="." default="package">
    <property name="compile" value="compile"></property>
    <property name="dist" value="dist"></property>
    <target name="init"></target>
    <target name="preprocess" depends="init">
        <mkdir dir="${compile}"/>
        <mkdir dir="${dist}"/>
    </target>
    <target name="complie" depends="init,preprocess"></target>
    <target name="package" depends="complie"></target>
    <target name="myCompile" depends="preprocess">
        <javac srcdir="src" destdir="${compile}"></javac>
    </target>
    <target name="dist" depends="myCompile">
        <jar destfile="${dist}/package.jar" basedir="${compile}"></jar>
    </target>
</project>

jar包中会附带生成jar文件的ant的信息META-INF/MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.6
Created-By: 1.8.0_101-b13 (Oracle Corporation)


4.3 生成图形界面的jar文件

<?xml version="1.0" encoding="utf-8"?>
<project name="myAntProject" basedir="." default="package">
    <property name="compile" value="compile"></property>
    <property name="dist" value="dist"></property>
    <target name="init"></target>
    <target name="preprocess" depends="init">
        <mkdir dir="${compile}"/>
        <mkdir dir="${dist}"/>
    </target>
    <target name="complie" depends="init,preprocess"></target>
    <target name="package" depends="complie"></target>
    <target name="myCompile" depends="preprocess">
        <javac srcdir="src" destdir="${compile}"></javac>
    </target>
    <target name="dist" depends="myCompile">
        <jar destfile="${dist}/package.jar" basedir="${compile}">
            <manifest>
                <attribute name="Built-by" value="${user.name}"/>
                <attribute name="Main-Class" value="com.test.Test01"/>
            </manifest>
        </jar>
    </target>
</project>

通过mainfest定义构建内容
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.6
Created-By: 1.8.0_101-b13 (Oracle Corporation)
Built-by: chenchen
Main-Class: com.test.Test01


4.4 编译定义时间戳

<target name="dist" depends="myCompile">
    <tstamp></tstamp>
    <jar destfile="${dist}/package-${DSTAMP}.jar" basedir="${compile}">
        <manifest>
            <attribute name="Built-by" value="${user.name}"/>
            <attribute name="Main-Class" value="com.test.Test01"/>
        </manifest>
    </jar>
</target>



4.5 删除文件

<target name="deleteFile">
    <delete file="${dist}/package-20181201.jar"></delete>
</target>



4.6 拷贝文件

<target name="copyFile">
    <copy file="src/com/test/Test01.java" tofile="C:/Users/chenchen/Desktop/Test.java"></copy>
</target>


4.7 移动文件

<target name="moveFile">
    <move file="C:/Users/chenchen/Desktop/Test.java" todir="d:/"></move>
</target>


4.8 压缩文件

<target name="compress" depends="myCompile">
    <zip destfile="${dist}/package.zip" basedir="${compile}"></zip>
</target>



4.9 解压缩文件

<target name="uncompress" depends="compress">
    <unzip dest="${dist}" src="${dist}/package.zip"></unzip>
</target>



4.10 ant集成cvs

<property name="cvsRoot" value=":pserver:username:password@localhost:c:\cvs"></property>
<property name="destLocation" value="C:/Users/chenchen/Desktop/"></property>
<target name="preprocess" depends="init">
    <mkdir dir="${destLocation}"/>
</target>
<target name="cvs" depends="preprocess">
        <cvs cvsroot="${cvsRoot}" package="project01" command="checkout" dest="${destLocation}"></cvs>
</target>


4.11 替换内容

summary="on"属性显示替换信息

<target name="replaceOperation">
<replace file="input.txt" token="how" value="what" summary="on"></replace>
</target>


4.12 拷贝文件

<include name="*.java"/>单层目录文件
<include name="**/*.java"/>所有目录文件

<property name="src" value="src"></property>
<target name="copy2">
    <copy todir="${dist}">
        <fileset dir="${src}">
            <include name="**/*.java"/>
        </fileset>
    </copy>
</target>


5. 自定义ant

1. 导入ant.jar

2. 编写自定义文件,实现Task接口
package com.tool;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.ListIterator;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class FileSorter extends Task {
    private File srcFile;
    private File destFile;
    public File getSrcFile() {
        return srcFile;
    }
    public void setSrcFile(File srcFile) {
        this.srcFile = srcFile;
    }
    public File getDestFile() {
        return destFile;
    }
    public void setDestFile(File destFile) {
        this.destFile = destFile;
    }
    @Override
    public void execute() throws BuildException {
        try {
            BufferedReader fromFile = new BufferedReader(new FileReader(srcFile));
            BufferedWriter toFile = new BufferedWriter(new FileWriter(destFile));
            List<String> list = new ArrayList<>();
            String line = fromFile.readLine();
            while (line != null) {
                list.add(line);
                line = fromFile.readLine();
            }
            Collections.sort(list);
            for (ListIterator<String> li = list.listIterator(); li.hasNext();) {
                String str = li.next();
                toFile.write(str);
                toFile.newLine();
            }
            fromFile.close();
            toFile.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. input.txt文件
hello world
what are you
what old are you
what do you do
abc
test

4. build.xml文件
<taskdef name="myFileSorterExample" classname="com.tool.FileSorter" classpath="bin">
</taskdef>
<target name="myFileSorter">
    <myFileSorterExample srcFile="input.txt" destFile="output.txt"></myFileSorterExample>
</target>

5. 运行结果output.txt
abc
hello world
test
what are you
what do you do
what old are you
分享到:
评论

相关推荐

    ant包+示例

    总之,"Ant包+示例"提供了一个全面学习和实践Ant的好机会,无论你是Java开发者还是系统管理员,都能从中受益,提升项目管理的效率和质量。通过深入研究和实践压缩包中的内容,你可以熟练掌握Ant的使用,为你的Java...

    ant部署示例代码

    本示例代码是关于如何使用Ant进行项目部署的一个实例,主要关注点在于如何配置`build.xml`文件以及如何处理一个小型Java项目。 首先,`build.xml`是Ant的构建文件,它定义了构建过程中的各种任务和目标。这个文件...

    ant构件示例说明

    标题中的“ant构件示例说明”表明我们即将探讨的是关于Apache Ant工具的使用,它是一个Java平台上的构建工具,常用于编译、打包和测试Java项目。Ant是基于XML的,它的配置文件(通常命名为build.xml)定义了构建过程...

    ant个人学习笔记和简单示例

    Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用来自动化Java应用程序的构建过程。这个压缩包“ant”可能...通过学习和实践其中的示例,你将能够熟练地运用Ant来构建和管理Java项目,提高开发效率。

    struts和ant简单示例

    对于初学者来说,这个示例项目是一个很好的起点,可以让他们了解如何在实际开发中使用Struts和Ant。通过学习这个示例,你可以了解到如何配置Struts的ActionMapping,如何创建和使用ActionForm,以及如何在JSP中使用...

    ant build.xml例子

    在“ant-demo”这个压缩包中,很可能是包含了一个实际的Ant项目示例,里面可能有`build.xml`文件以及源代码、资源文件等。学习这个示例可以帮助你更好地理解和应用Ant,理解如何配置和执行Ant构建脚本,从而提升你的...

    Ant项目配置与测试用例管理

    对于压缩包中的"Ant_TestNG_Test"文件,这可能包含了一个示例Ant项目,其中包括了build.xml配置文件,以及使用TestNG编写的测试类。这些文件可以帮助你理解如何在实际项目中配置和运行Ant与TestNG的集成。 总结来说...

    Ant学习示例

    【Ant学习示例】 Ant是Apache软件基金会Jakarta项目下的一个构建工具,它以其XML格式的构建文件(build.xml)而闻名,用于自动化Java项目的构建、编译、测试和部署等任务。Ant的设计理念是简单易用,同时具有高度可...

    Junit+ant+cobertura示例

    总的来说,"Junit+ant+cobertura示例"是一个展示如何使用JUnit进行单元测试,通过Ant进行自动化构建,并利用Cobertura进行代码覆盖率分析的实践案例。这样的组合可以帮助开发者更高效地管理和提升代码质量,确保软件...

    ant junit emma 示例工程。

    在Java开发过程中,测试是确保代码质量和可靠性的重要环节。...这个"ant_junit_emma"示例工程就是一个很好的学习资源,可以帮助开发者理解如何将这三个工具集成到实际项目中,提升测试质量和效率。

    android使用ant自动构建示例

    本示例将详细介绍如何在Android项目中利用Ant进行自动构建。 首先,我们需要理解Ant的基本概念。Ant是一个基于Java的任务驱动的构建系统,它的核心是build.xml文件,这个文件包含了构建项目的各种任务和规则。在...

    ANT项目构建

    ### ANT项目构建知识点详解 #### 一、Ant简介与安装配置 **Ant** 是一个开源的、跨平台的构建工具,由Apache基金会维护。它的主要功能在于自动化项目的构建过程,包括编译、测试、打包、部署等多个环节。通过使用...

    AntDesignVue一个基于AntDesign和Vue的企业级UI组件库

    在实际项目中,例如`vueComponent-ant-design-vue-e94a0f0`这个文件夹中的示例,我们可以看到如何将AntDesignVue组件整合到Vue项目中,创建一个完整的页面。这通常包括导入所需组件、定义组件结构、绑定数据和事件...

    hello-ant 项目 ,学习ant工具的build file. java

    Hello-Ant项目是一个专门用于学习Ant工具及其构建文件(build file)的示例项目。本项目主要目的是帮助开发者熟悉如何使用Ant来自动化Java项目的构建过程。通过学习Jakarta-Ant 1.6alpha版本的`build.xml`文件,用户...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    - 这个文件或文件夹可能包含了Ant 1.6.5的具体实现,包括核心库、文档、示例或其他辅助文件。 总结起来,Apache Ant 1.6.5是一个为Java项目提供构建功能的工具,尤其适用于Windows平台。通过解压缩此ZIP文件并配置...

    Ant,示例项目的灵感来自Trinea的Android Common项目,该项目使用了新技术,使您的Android应用程序架构更快、更流畅,由Anthony进行长期维护。.zip

    示例项目使您的android应用程序架构更快、更流畅,我可以长期维护,同时更新博客。

    ant打war包

    在压缩包中的文件名列表"ant打war包"可能是整个构建过程的示例项目,包含了一个使用Ant构建WAR包的实际项目结构,用户可以参考这个示例来理解和学习如何在自己的项目中应用Ant和SVN。 总之,"ant打war包"涉及了Ant...

    ant-design-demos

    9. **最佳实践**:通过示例,你可以学习到Ant Design在实际项目中的最佳实践,如何避免常见问题,以及如何与其他库或服务集成。 压缩包内的两个文件"ant-design-demo1.rar"和"ant-design-demo2.rar"可能是不同版本...

Global site tag (gtag.js) - Google Analytics