首页 > 代码库 > Ant学习---第三节:使用Ant实现一个最小的项目编译
Ant学习---第三节:使用Ant实现一个最小的项目编译
1、编译 .java 文件,生成 .jar 包,代码如下:
<?xml version="1.0" encoding="UTF-8"?><project default="jar"> <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 --> <fileset id="src.path" dir="src"> <!-- include 是用逗号分隔的,需要包含的文件模式列表 --> <include name="**/*.*"/> <!-- excludes 是用逗号分隔的需要派出的文件模式列表 --> <exclude name="**/Test*"/> </fileset> <target name="init"> <delete dir="build"/> <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 --> <mkdir dir="build"/> <mkdir dir="build/src"/> <mkdir dir="build/classes"/> <mkdir dir="build/dist"/> </target> <!-- depends表示依赖的目标 --> <target name="copySrc" depends="init"> <!-- todir 表示目标目录 --> <copy todir="build/src"> <!-- 通过 refid 可以引用外部标签 --> <fileset refid="src.path"></fileset> </copy> </target> <target name="compile" depends="copySrc"> <!-- 编译 --> <javac destdir="build/classes" srcdir="src"/> </target> <target name="jar" depends="compile"> <!-- 打包 --> <!-- destfile表示JAR文件名 basedir表示被归档的文件名 --> <jar destfile="build/classes/hello.jar" basedir="build/src"/> </target></project>
2、在生成的 .jar 文件中的 MANIFEST.MF 文件中添加属性,代码如下:
<?xml version="1.0" encoding="UTF-8"?><project default="jar"> <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 --> <fileset id="src.path" dir="src"> <!-- include 是用逗号分隔的,需要包含的文件模式列表 --> <include name="**/*.*"/> <!-- excludes 是用逗号分隔的需要派出的文件模式列表 --> <exclude name="**/Test*"/> </fileset> <target name="init"> <delete dir="build"/> <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 --> <mkdir dir="build"/> <mkdir dir="build/src"/> <mkdir dir="build/classes"/> <mkdir dir="build/dist"/> </target> <!-- depends表示依赖的目标 --> <target name="copySrc" depends="init"> <!-- todir 表示目标目录 --> <copy todir="build/src"> <!-- 通过 refid 可以引用外部标签 --> <fileset refid="src.path"></fileset> </copy> </target> <target name="compile" depends="copySrc"> <!-- 编译 --> <javac destdir="build/classes" srcdir="src"/> </target> <target name="jar" depends="compile"> <!-- 打包 --> <!-- destfile表示JAR文件名 basedir表示被归档的文件名 --> <jar destfile="build/classes/hello.jar" basedir="build/src"> <!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 --> <manifest> <!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class --> <attribute name="Mina-class" value="com.learn.ant.HelloWorld"></attribute> <attribute name="BuildBy" value="hwl"></attribute> </manifest> </jar> </target></project>
3、执行 .jar 文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?><project default="execute"> <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 --> <fileset id="src.path" dir="src"> <!-- include 是用逗号分隔的,需要包含的文件模式列表 --> <include name="**/*.*"/> <!-- excludes 是用逗号分隔的需要派出的文件模式列表 --> <exclude name="**/Test*"/> </fileset> <target name="init"> <delete dir="build"/> <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 --> <mkdir dir="build"/> <mkdir dir="build/src"/> <mkdir dir="build/classes"/> <mkdir dir="build/dist"/> </target> <!-- depends表示依赖的目标 --> <target name="copySrc" depends="init"> <!-- todir 表示目标目录 --> <copy todir="build/src"> <!-- 通过 refid 可以引用外部标签 --> <fileset refid="src.path"></fileset> </copy> </target> <target name="compile" depends="copySrc"> <!-- 编译 --> <javac destdir="build/classes" srcdir="src"> <compilerarg line="-encoding UTF-8"/> </javac> </target> <target name="jar" depends="compile"> <!-- 打包 --> <!-- destfile表示JAR文件名 basedir表示被归档的文件名 --> <jar destfile="build/dist/hello.jar" basedir="build/classes"> <!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 --> <manifest> <!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class --> <attribute name="Main-class" value="com.learn.ant.HelloWorld"></attribute> <attribute name="BuildBy" value="hwl"></attribute> </manifest> </jar> </target> <target name="execute" depends="jar"> <!-- 编译 --> <echo>基于类路径的classname来完成执行</echo> <java classname="com.learn.ant.HelloWorld" classpath="build/classes"> <!-- 参数 --> <arg value="张三"/> <arg value="李四"/> <arg value="王五"/> </java> <echo>基于jar文件完成执行</echo> <!-- fork="true" 表示基于jdk的环境类执行 --> <java jar="build/dist/hello.jar" fork="true"> <!-- 参数 --> <arg value="张三"/> <arg value="李四"/> <arg value="王五"/> </java> </target></project>
Ant学习---第三节:使用Ant实现一个最小的项目编译
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。