服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java使用ant来编译


  下面我们来教大家来使用ant来build这个工程。ant是由apache.org组织来提供给java开发人员使用的如unix平台下的make一样的工程编译工程。它能自动识别我们要进行javac的java文件,将这些文件进行javac,再按照我们的要求来将这些class文件打包成为相应的jar包,当然也包括war文件(war文件也是一个jar文件,只是后缀名不同而已,都可以使用jar工具进行打包和解包)。我们先来看看我们为helloejb这个工程所写的build.xml文件,这个文件内容如下:

<?xml version="1.0"?>

<!--

build file for `orion-primer', an sample j2ee application.

version: $revision: 3.1 $ $date: 2000/08/28 10:03:11 $
author: ernst de haan

-->

<project basedir="." default="j2ee-ear" name="orion-primer">

 <target name="init">
  <property name="name" value="helloejb"></property>
  <property name="src.dir" value="src"></property>
  <property name="lib.dir" value="lib"></property>
  <property name="rel.dir" value="rel"></property>
  <property name="orion.dir" value="c:/orion"></property>
  <property name="build.compiler" value="classic"></property>
 </target>

 <target name="clean" depends="init">
  <deltree dir=${lib.dir}>
  <deltree dir=${rel.dir}>
 </target>

 <target name="prepare" depends="init">
  <mkdir dir=${lib.dir}>
  <mkdir dir=${lib.dir}/ejb>
  <mkdir dir=${lib.dir}/ejb/meta-inf>
  <mkdir dir=${lib.dir}/web>
  <mkdir dir=${lib.dir}/web/web-inf>
  <mkdir dir=${lib.dir}/web/web-inf/classes>
  <mkdir dir=${lib.dir}/j2ee>
  <mkdir dir=${lib.dir}/meta-inf>
  <mkdir dir=${rel.dir}>
 </target>

 <target name="ejb-classes" depends="prepare">
  <javac
     includes="java/net/chinacode/**"
     classpath="${orion.dir}/ejb.jar" >
 </target>

 <target name="ejb-meta-inf" depends="prepare">
  <copyfile

 </target>

 <target name="ejb-jar" depends="ejb-classes,ejb-meta-inf">
  <jar

 </target>

 <target name="web-classes" depends="prepare">
  <javac
     includes="java/net/chinacode/web/**"
     classpath="${lib.dir}/ejb:${orion.dir}/ejb.jar:${orion.dir}/jndi.jar:${orion.dir}/orion.jar" />
 </target>


 <target name="web-web-inf" depends="prepare">
  <copyfile
     dest="${lib.dir}/web/web-inf/web.xml" >
 </target>

 <target name="web-war" depends="web-classes,web-web-inf">
  <jar

 </target>

 <target name="j2ee-meta-inf" depends="prepare">
  <copyfile

 </target>

 <target name="j2ee-ear" depends="ejb-jar,web-war,j2ee-meta-inf">
  <copyfile

  <copyfile

  <jar

 </target>

</project>

  我们将这个xml文件存入hdsite/build.xml文件下。这个文件说明了我们去编译整个工程的文件的步骤,同时也可以看到相应的配置文件也就是哪些xml文件是按一个什么样的规则被打包到jar文件中去的。通过ant编绎后我们在hdsite/rel目录下会得到helloejb-ejb.jar文件和helloejb-web.war文件以及helloejb.ear文件。如果需要了解ant的build.xml文件更为详细的信息请到http://www.apache.org网站寻找相应的文档。做好后,我们只要在hdsite目录下运行ant就可以了,它会自动创建一系列的目录,我们只需要得到rel目录下的几个包文件。如果只需要在一个orion服务器上运行servlet加ejb,哪么我们只需要一个ear文件就可以了。如果需要分开运行,哪么web容器就是war文件,jar文件就是ejb容器。

  下面我们来在orion/config目录下的server.xml文件中加入这一行:

  <application name="helloejb" path="c:/hdsite/rel/helloejb.ear">

  这样我们就说明了一个在server中运行的应用包或是目录。同时我们也需要在web server的设置中说明一个虚似路径到servlet上,将orion/config/中的default-web-site.xml文件中加入这样一行:

  <web-app name="helloejb-web" root="/helloejb" application="helloejb">

  这样我们就说明了在缺省的web服务器中加入一个/helloejb的虚似路径,并指向helloejb-web这个web容器。哪么大家会问,我们通过浏览器以什么样的路径会访问到这个servlet呢?因为一个servlet没有像html一样是一个文件存在于web服务器可以访问到的路径。很简单,我们可以看到在前面的web容器的配置说明文件web.xml中说明了一个servlet map将helloservlet指向到了/,哪么我们访问这个servlet的路径就是http://hostname/helloejb/就可以了,如果我们在web.xml中将/改成/helloservlet,哪么我们访问的路径就是http://hostname/helloejb/helloservlet了。

扫描关注微信公众号