利用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

你可能感兴趣的:(build.xml)