使用ant从多个Source Folder的项目中导出jar包(续)

上回给大家分享了一种解决方案(以下简称方案一),但该方案存在一个弊端:第一次编译时需要编译工程中所有的java文件,包括跟该SourceFolder中源码无关的java文件。为解决这一问题,我又研究了ant的使用,最终找到了如下解决方案(以下简称方案二)。方案二与方案一思路基本一致,区别仅在于第一次编译。在方案二中,第一次编译时,我配置了sourcepath。这样,当ant编译指定目录下的文件时如果需要引用的java文件不在该SourceFolder目录下,就可以去配置的sourcepath中查找编译。下面贴出配置信息:

<?xml version= "1.0"?> <project default="clean" basedir="."> <property name="base" value="." /> <property name="src.1.dir" value="src1" /> <property name="src.2.dir" value="src2" /> <property name="src.3.dir" value="src3" /> <property name="classes.1.dir" value="bin1" /> <property name="temp.dir" value="temp" /> <property name="jarFile" value="D:/hello.jar" /> <!-- 初始化,创建两个临时文件 --> <target name="init"> <!-- 用于存储指定目录编译后产生的class文件 --> <mkdir dir="${classes.1.dir}"/> <!-- 用于存储指定目录编译后产生的class文件以及相关class文件 --> <mkdir dir="${temp.dir}"/> </target> <!-- 编译java文件 --> <target name="compile" depends="init"> <!-- 编译指定目录下的java文件及其相关文件 --> <javac srcdir="${src.1.dir}" destdir="${temp.dir}"> <sourcepath path="${src.2.dir}"></sourcepath> <sourcepath path="${src.3.dir}"></sourcepath> </javac> <!-- 使用临时目录中的class文件编译指定目录下的java文件 --> <javac srcdir="${src.1.dir}" destdir="${classes.1.dir}"> <classpath> <pathelement location="${temp.dir}"/> </classpath> </javac> </target> <!-- 打包class文件 --> <target name="package" depends="compile"> <jar destfile="${jarFile}" basedir="${classes.1.dir}"> </jar> </target> <!-- 清理,删除临时文件 --> <target name="clean" depends="package"> <delete dir="${classes.1.dir}" /> <delete dir="${temp.dir}" /> </target> </project>

项目结构:

项目源码(包含上述配置信息):点击下载(http://download.csdn.net/detail/binbinxyz/4152665)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值