您的位置:首页 > 编程语言 > Java开发

用Ant 打包java工程为jar文件

2009-07-21 17:33 507 查看
build.xml的写法

<project name="ControlServer" default="release" basedir=".">

<property file="build.properties" />
<property name="controlserver.name" value="ControlServer" />
<property name="src.controlserver.home" value="${controlserver.name}/src" />
<property name="build.home" value="build" />
<property name="common.name" value="Common" />
<property name="src.common.home" value="${common.name}/src" />
<property name="src.name" value="src" />
<property name="bin.name" value="bin" />
<property name="classes.name" value="classes" />
<property name="log.name" value="log" />
<property name="config.name" value="config" />
<property name="lib.name" value="lib" />
<property name="temp.home" value="temp" />

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

<target name="init-common">
<!--
<mkdir dir="${build.home}/${common.name}/${lib.home}" />
<mkdir dir="${build.home}/${common.name}/${config.home}" />
<mkdir dir="${build.home}/${common.name}/${log.home}" />-->
<mkdir dir="${temp.home}/${common.name}/classes" />
<mkdir dir="${temp.home}/${common.name}/lib" />
<copy todir="${temp.home}/${common.name}/lib">
<fileset dir="${common.name}/lib/">
<include name="**/*.jar" />
</fileset>
</copy>
</target>

<target name="compile-common" depends="init-common">
<tstamp />
<javac srcdir="${src.common.home}" destdir="${temp.home}/${common.name}/classes" debug="yes">
<classpath refid="common.classpath">
</classpath>
</javac>

<!--
<delete dir="${temp.home}">
<exclude name="**/*.jar"/>
</delete>-->

</target>
<target name="jar-common" depends="compile-common">
<jar destfile="${temp.home}/${common.name}/lib/${common.name}.jar">
<fileset dir="${temp.home}/${common.name}/${classes.name}">
<include name="**/*.class" />
<include name="**/*.xml" />
</fileset>
</jar>
</target>

<target name="init-controlserver">
<mkdir dir="${build.home}/${controlserver.name}/${lib.name}" />
<mkdir dir="${build.home}/${controlserver.name}/${config.name}" />
<mkdir dir="${build.home}/${controlserver.name}/${log.name}" />
<mkdir dir="${temp.home}/${controlserver.name}" />

<copy todir="${build.home}/${controlserver.name}/${lib.name}">
<fileset dir="${controlserver.name}/${lib.name}">
<include name="**/*" />
</fileset>
</copy>
<copy todir="${build.home}/${controlserver.name}/${log.name}">
<fileset dir="${controlserver.name}/${log.name}">
<include name="**/*" />
</fileset>
</copy>
<copy todir="${build.home}/${controlserver.name}/${config.name}">
<fileset dir="${controlserver.name}/${config.name}">
<include name="**/*" />
</fileset>
</copy>
<copy todir="${build.home}/${controlserver.name}/">
<fileset dir="${controlserver.name}/${bin.name}">
<include name="**/*" />
</fileset>
</copy>
</target>

<target name="compile-controlserver" depends="jar-common,init-controlserver">

<tstamp />
<javac srcdir="${src.controlserver.home}" destdir="${temp.home}/${controlserver.name}" debug="yes">
<classpath refid="controlserver.classpath">
</classpath>
</javac>

<copy todir="${temp.home}/${controlserver.name}">
<fileset dir="${src.controlserver.home}/">
<include name="**/*.xml" />
</fileset>
</copy>

<!--
<delete dir="${temp.home}">
<include name="**/*" />
</delete>-->
</target>

<target name="jar-controlserver" depends="compile-controlserver">
<jar destfile="${build.home}/${controlserver.name}/${lib.name}/${controlserver.name}.jar">
<fileset dir="${temp.home}/${controlserver.name}">
<include name="**/*.class" />
<include name="**/*.xml" />
</fileset>
</jar>
</target>

</project>


 

ControlServer工程目录结构

- ControlServer

  +src

  +bin

  +config

  +lib

  +log

  +temp

 

ControlServer依赖Common工程

- Common

  +src

  +lib

 

部署后的目录结构

- build

  -  ControlServer

      + config

      + lib

      + log

 

其中 ControlServer.jar 和其用到的jar在 lib中

 

现在可以写个bat 或sh用来启动该java应用

 

startup.bat内容如下

java  -Xms512m -Xmx1024m -classpath lib/dom4j-1.6.1.jar;
lib/mina-integration-jmx-2.0.0-M1.jar;lib/slf4j-api-1.3.0.jar;

......................

......................
lib/slf4j-log4j12-1.3.0.jar;lib/spring2.5.3.jar;lib/Common.jar;
lib/ControlServer.jar  cn.ipanel.apps.ars.tcp.StartUp %1 %2

==========================================

 

startup.sh内容如下

java  -Xms512m -Xmx1024m -classpath lib/dom4j-1.6.1.jar:
lib/log4j-1.2.8.jar:lib/mina-core-2.0.0-M1.jar:
lib/mina-filter-codec-netty-2.0.0-M1.jar:
lib/mina-filter-compression-2.0.0-M1.jar:
lib/mina-integration-jmx-2.0.0-M1.jar:
lib/slf4j-api-1.3.0.jar:lib/slf4j-log4j12-1.3.0.jar:
lib/spring2.5.3.jar:lib/Common.jar:lib/ControlServer.jar 
cn.ipanel.apps.ars.tcp.StartUp %1 %2

 

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java jar ant include build path