ant打包的一些小心得

一、打war包时出现的问题


1. Ant 默认 编译器 面对 Annotation中的编译错误


我解决的办法,是直接使用 Eclipse的JDT 编译器
    a. 找到 jdtCompilerAdapter.jar and org.eclipse.jdt.core_3.7.0.v_B61.jar(根据不同的eclipse版本可能会有不同的jar ) (search org.eclipse.jdt.core in eclipse directory)

    b. 然后把它们放入 ${ANT_HOME}/lib

    c.加入配置<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> in builder.xml

二、打包可运行jar

打可运行jar的方式,有两种,1是把引用到的jar包全部都unjar到classes里面,然后一起打包成一个jar。2是把引用到的jar放在外面,然后在ant中使用引用的方式调用。

以下是build.xml的内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="./.." default="build" name="offlinePimsCS">
	<!--定义属性-->
	<property name="src.dir" value="src" />
	<property name="classes.dir" value="classes" />
	<property name="lib.dir" value="lib" />
	<property name="jarname" value="pimsClient.jar" />
	<property name="mainfunction" value="com.naxl.pims.main.main" />

	<path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<!-- 编译 -->
	<target name="compile">
		<delete dir="${classes.dir}"></delete>
		<mkdir dir="${classes.dir}" />
		<!-- javac -->
		<javac srcdir="${src.dir}" destdir="${classes.dir}" encoding="UTF-8" includeAntRuntime="false">
			<classpath refid="classpath">
			</classpath>
		</javac>
	</target>

	<!-- 打jar包 -->
	<target name="build" depends="compile">
		<!-- 解压内容到classes中,将来与classes一并创建成jar
		<unjar dest="${classes.dir}">
			<fileset dir="${lib.dir}" includes="**/*.jar" />
		</unjar>
		 -->
		<!-- 生成清单 -->
		<manifestclasspath property="manifest.classpath" jarfile="${jarname}">
			<classpath refid="classpath" />
		</manifestclasspath>
		<!-- 打包生成jar -->
		<jar basedir="${classes.dir}" destfile="${jarname}" encoding="utf-8">
			<manifest>
				<attribute name="Main-Class" value="${mainfunction}" />
				<attribute name="Class-Path" value="${manifest.classpath}" />
			</manifest>
			<fileset dir="${src.dir}">
				<include name="*.properties" />
			</fileset>
			<fileset dir="${src.dir}">
				<include name="com/naxl/pims/images/*" />
			</fileset>
		</jar>
		<delete dir="${classes.dir}"></delete>
	</target>
</project>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值