利用ANT编译工具发布EJB项目build.xml配置文件

 

build.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="EJB3Entity" basedir=".">
 3     
 4     <property name="src.dir" value="${basedir}/src" />
 5     <property environment="env" />
 6     <property name="jboss.home" value="${env.JBOSS_HOME}" />
 7     <property name="jboss.server.config" value="default" />
 8     <property name="build.dir" value="${basedir}/build"/>
 9     
10     <path id="build.classpath">
11         <fileset dir="${jboss.home}/client">
12             <include name="*.jar" />
13         </fileset>
14         <pathelement location="${build.dir}" />
15     </path>
16     
17     <target name="prepare">
18         <delete dir="${build.dir}" />
19         <mkdir dir="${build.dir}" />
20     </target>
21     
22     <target name="compile" depends="prepare" description="编绎">
23         <javac target="1.5" srcdir="${src.dir}" includes="cn/**" destdir="${build.dir}" fork="true" memoryinitialsize="10M" memorymaximumsize="64M" encoding="utf-8"
24 >
25             <classpath refid="build.classpath" />
26         </javac>
27     </target>
28     
29     <target name="ejbjar" depends="compile" description="创建EJB发布包">
30         <jar jarfile="${basedir}/${ant.project.name}.jar">
31             <fileset dir="${build.dir}">
32                 <include name="**/*.class" />
33             </fileset>
34             <metainf dir="${src.dir}/META-INF"></metainf>
35         </jar>
36     </target>
37     
38     <target name="deploy" depends="ejbjar" description="发布EJB">
39         <copy file="${basedir}/${ant.project.name}.jar" todir="${jboss.home}/server/${jboss.server.config}/deploy"    />
40     </target>
41     
42     <target name="undeploy" description="卸载EJB">
43         <delete file="${basedir}/${ant.project.name}.jar" />
44         <delete file="${jboss.home}/server/${jboss.server.config}/deploy/${ant.project.name}.jar" />
45     </target>
46     
47 </project>

 

 

注意:

对应的JBOSS服务器所使用的JDK版本要与ANT打包时所使用的版本保持一致。其中这一块代码是比较容易出问题的地方:

 

1 <target name="compile" depends="prepare" description="编绎">
2         <javac target="1.5" srcdir="${src.dir}" includes="cn/**" destdir="${build.dir}" fork="true" memoryinitialsize="10M" memorymaximumsize="64M" encoding="utf-8"
3 >
4             <classpath refid="build.classpath" />
5         </javac>
6 </target>

 

javac标签中利用target指定ANT所使用的JDK版本,encoding属性指定编译时的编码。

加上fork标签为true,且memoryinitialsize与memorymaximumsize的值用于指定内存使用最小与最大值,一些教程中忽略了这些要点,导致在使用ANT发布编辑过程中报错,网上搜索很多资料说是JDK版本的问题,也有的说是缺少tool.jar包,其实是内存不足导致。

 

另附jndi.properties

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.provider.url = localhost:1099

posted @ 2012-11-11 18:41  后起之秀  阅读(1250)  评论(0编辑  收藏  举报