ant

来源:互联网 发布:如何登录淘宝店铺 编辑:程序博客网 时间:2024/06/10 07:11
<?xml version="1.0"  encoding="UTF-8"?>
<project default="execute">
<!--build.xml所在的路径为参考路径  src和build同级目录    -->
<!-- fileset表示文件集    name="**/*.*" 表示src目录下的所有的目录(**)的文件(*.*)-->


<fileset  id="src.path" dir="src">
    <!-- <include name="**/*.*"/>  -->  <!-- 包括    只能用**表示路径  -->
<include name="**/num.java"/>
<exclude name="**/*Test*.*"/>    <!-- 除了  -->
</fileset>

<target name="init" >
      <delete dir="build"></delete>    
      <mkdir dir="build"/>
      <mkdir dir="build/src"/>
      <mkdir dir="build/classes"/>
      <mkdir dir="build/dist"/>
    </target>


<target name="compile" depends="init">
<!-- destdir编译后的文件放在哪个路径下面       srcdir表示要执行的文件路径-->
 <javac destdir="build/classes"  srcdir="src"/>
</target>

<!--先执行init任务   再执行copySrc任务 -->
<target name="copySrc"  depends="init"> 
<copy todir="build/src">
<fileset refid="src.path"></fileset>
</copy>

<!-- <copy todir="build/classes">
<fileset dir="bin"></fileset>
</copy>
如果class文件沒有拷贝成功,而是拷贝到了bin目录下面的话,那么通过移文件的方式(1.8.2版本有此类问题)-->
</target>



<target name="jar"  depends="compile,copySrc">
  <jar destfile="build/dist/hello.jar"  basedir="build/classes">
  <manifest>
   <attribute name="Main-Class"  value="num"/>
    <attribute name="Build-By" value="shaowei"/>
  </manifest> 
  </jar>
</target>

<target name="execute" depends="jar">

<echo>基于类路径的class类,classes(编译文件)文件来执行</echo>
 <java classpath="build/classes"  classname="num">
 </java>

<echo>通过jar文件来执行</echo>
<!-- fork设置为true表示用jdk的环境来运行  而不是用ant的环境   -->
   <java  jar="build/dist/hello.jar"   fork="true">
    <arg value="hello boy"/>
    <arg value="你好"/>
   </java>


</target>


</project>



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··


<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">

<property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,一定使用location而不要使用value-->
<property name="build.classes" location="${build.dir}\classes"></property>
<property name="build.src" location="${build.dir}/src"></property>
<property name="build.lib.dir" location="${build.dir}/dist"></property>
<!--<property name="execute.class" value="ant.zttc.edu.cn.HelloWorld"/>
<property name="jar.name" value="hello.jar"></property>
-->

<!--如果属性太多,可以将属性放置到一个外部文件中定义,之后进行引用
 特别注意:如果是路径不建议在外部文件中定义,因为此时就不会设置location的值-->
<property file="build.properties"></property>

<!--把环境变量中的参数到处到env这个变量中-->
<property environment="env"></property>

<target name="test">
<echo>${ant.home}</echo>
<echo>${ant.version}</echo>
<echo>${env.CATALINA_HOME}</echo>
<echo>${env.OS}</echo>
</target>

<!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset>

<target name="init">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib.dir}"/>
</target>

<target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path"></fileset>
</copy>
</target>

<target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src"></javac>
</target>

<target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}"/>
<attribute name="Build-By" value="Konghao"/>
</manifest>
</jar>
</target>

<target name="execute" depends="jar,copySrc">

<echo>基于类路径的classname来完成执行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>

<echo>基于jar文件执行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>



***********************


<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">

<!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset>

<target name="init">
<delete dir="build"></delete>
<mkdir dir="build"/>
<mkdir dir="build/src"/>
<mkdir dir="build/classes"/>
<mkdir dir="build/dist"/>
</target>

<target name="copySrc" depends="init">
<copy todir="build/src">
<fileset refid="src.path"></fileset>
</copy>
</target>

<target name="compile" depends="init">
<javac destdir="build/classes" srcdir="src"></javac>
</target>

<target name="jar" depends="compile">
<jar destfile="build/dist/hello.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="ant.zttc.edu.cn.HelloWorld"/>
<attribute name="Build-By" value="Konghao"/>
</manifest>
</jar>
</target>

<target name="execute" depends="jar,copySrc">

<echo>基于类路径的classname来完成执行</echo>
<java classname="ant.zttc.edu.cn.HelloWorld" classpath="build/classes">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>

<echo>基于jar文件执行</echo>
<java jar="build/dist/hello.jar" fork="true">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>

0 0
原创粉丝点击