Ant封装Java Project

Ant打包Java Project
最近做了一个服务器端项目,要把一个Java Project打成可运行jar发送到linux服务器上去运行,但是每次都要替换那么几个文件(因为本地运行和真实环境下配置文件需要改),感觉很麻烦,就想到了用ant来打包,但是通过写好的build.xml文件不能很好的将jar包打进去(能打进去,但是运行的时候又问题)。最后发现在Eclipse生成可运行jar时也可以生成build.xml文件。
如下所示:


Ant封装Java Project

Ant封装Java Project

这样的话我们只需要在生成的build.xml文件中做适当的修改就可以了,如下面一个简单的例子:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="eidtorserverJar">

	<property name="jarname" value="C:/editor/editorserver.jar">
	</property>
	<property name="dist" value="dist">
	</property>
	<property name="srcDatasourceFile" value="C:/editor/replaceFile/editorserver/spring-config-datasource.xml">
	</property>
	<property name="objDatasourceFile" value="${dist}/spring-config-datasource.xml">
	</property>

	<target name="create_run_jar" depends="replaceFile">
		<jar destfile="${jarname}" filesetmanifest="mergewithoutmain">
			<manifest>
				<attribute name="Main-Class" value="com.emag.editorserver.listserver.ListServerMain" />
				<attribute name="Class-Path" value="." />
			</manifest>
			<fileset dir="${dist}" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/ibatis-2.3.0.677.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/mina-0.8.2.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/mysql-connector-java-3.1.10-bin.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/slf4j-log4j13.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/spring.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/jotm-client.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/xapool_jesse.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/cglib-nodep-2.1_2.jar" />
			<zipfileset excludes="META-INF/*.SF" src="./lib/aspectjweaver-1.5.3.jar" />
		</jar>
	</target>

	<target name="replaceFile" depends="copyToDist">
		<delete file="${objDatasourceFile}">
		</delete>
		<copy file="${srcDatasourceFile}" todir="${dist}">
		</copy>
	</target>

	<target name="copyToDist" depends="clean">
		<mkdir dir="${dist}" />
		<copy todir="${dist}">
			<fileset dir="bin">
			</fileset>
		</copy>
	</target>

	<target name="clean">
		<delete dir="${dist}">
		</delete>
	</target>
</project>



这样的话可以把需要更改的文件放在一个专门的文件夹下,下次的时候直接执行build.xml就可以自动的处理了