在Eclipse中利用ANT机动构建Web应用
当前位置:以往代写 > JAVA 教程 >在Eclipse中利用ANT机动构建Web应用
2019-06-14

在Eclipse中利用ANT机动构建Web应用

在Eclipse中利用ANT机动构建Web应用

副标题#e#

媒介

ant是java开拓者东西箱的重要一环,junit,xdoclet等都与它细密关联,措施员大概习惯了IDE提供的自动构建,甚至陈设的成果,从而忽略了ant自己,其实,主流的IDE凡是是内置ant任务来完成这些事情的,熟悉ant内涵的机理,可以阅读或简朴修改build.xml无疑可以辅佐你更机动地集成、打点应用项目,假如需要进修maven这种开源项目打点办理方案,也是要以领略ant为基本的哟。别的,利用ant的进程实际上对构建举办了文档化,它是无关于IDE的,想象一下,你的同事中大概三分之一在用JbuilderX,三分之一用eclipse,尚有一些是此外。

本人利用eclipse3.0.1,以前的构建和宣布事情都由myeclipse插件作了,趁周末实践了一下手动构建,记此备忘。

实践

筹备事情:这是我的小我私家习惯,把所有公用的类库jar置于一个牢靠目次,分好类,不要丢在一个文件夹下,如jakarta-commons、hibernate、spring、struts等,这些是源码构建时需要用到的,在陈设时大概有一些不消再打进去了,好比servlet.jar。假如你们有本身的framework,也一并放在这里。然后,打开eclipse,进入Windows->Preferences->Java->User Libraries,增加一个本身的库,好比说mylib,把适才那些民众的jar全部添入,这样有个长处,在eclipse项目中,不消再看到烦人的长长的jar列表了,较量整洁。

下来正式举办:

1.新建一个Java Project,此时就不要再选你的j2ee插件内置的一些选项了,至简即可。

2.在root下建几个文件夹,我们在网上下载的开源项目中常常可以看到这些,好比:

src – 源码

classes – 编译

web – jsp等

lib – 库,这里可以简朴地把mylib下的东东copy过来,便于未来宣布源码。

dlist – 输出的jar或war

虽然,我们要建一个build.xml,eclipse中会呈现一个蚂蚁的小图标,一般这个文件成立后,下一个项目简朴的copy已往,稍加窜改就可以了。

3.打开项目标属性页,在Java Build Path的库选项中,插手我们自界说的民众库mylib.至于Builders方法就不消改了,利用默认的Java Builer即可,我只是项目陈设时利用ant,泛泛的排错事情就交给IDE吧。

4.重中之重,写你的build.xml,网上文章很海,我这里就不再烦琐了,根基上就分那几个任务:

4.1 先要声明一些路径变量,如

<property name="war.dir" value="dlist" />

也可以将其写至properties文件中,在这里引用;

4.2 声明编译的类路径,如下:

<path id="master-classpath">
<fileset dir="${lib.root}/struts">
<include name="struts-menu-2.3.jar" />
<include name="struts.jar" />
</fileset>
<fileset dir="${lib.root}/jakarta-commons">
<include name="commons-*.jar" />
</fileset>
<fileset dir="${lib.root}/ibatis2.0.9">
<include name="ibatis-*.jar" />
</fileset>
<fileset dir="${lib.root}/jdbcdriver">
<include name="jtds-0.9-rc2.jar" />
</fileset>s
......
</path>


#p#副标题#e#

4.3 清空输出目次,如web,dlist等。

4.4 编译构建:

<target name="build" description="Compile main source tree java files into class files, generate jar files">
<mkdir dir="${build.dir}" />
<javac destdir="${build.dir}" source="1.3" target="1.3" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}" />
<classpath refid="master-classpath" />
</javac>
<copy todir="${build.dir}" preservelastmodified="true">
<fileset dir="${src.dir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<!-- ============================================= -->
<!-- 据测试,资源文件不能被打到jar文件中,其余均可 -->
<!-- ============================================= -->
<copy todir="${webclasses.dir}/conf" preservelastmodified="true">
<fileset dir="${src.dir}/conf">
<include name="springResources*.properties" />
</fileset>
</copy>
<mkdir dir="${weblib.dir}" />
<jar jarfile="${weblib.dir}/${name}.jar" compress="true">
<fileset dir="${build.dir}">
<include name="**" />
</fileset>
</jar>
<copy todir="${weblib.dir}" preservelastmodified="true">
<fileset dir="${lib.root}">
<include name="log4j-1.2.8.jar" />
</fileset>
<fileset dir="${lib.root}/struts">
<include name="struts-menu-2.3.jar" />
<include name="struts.jar" />
</fileset>
<fileset dir="${lib.root}/jakarta-commons">
<include name="commons-*.jar" />
</fileset>
<fileset dir="${lib.root}/spring-1.1.3">
<include name="spring.jar" />
<include name="aopalliance.jar" />
</fileset>
......
</copy>
</target>
<!-- ============================================= -->
<!-- Compile main Java sources and copy libraries -->
<!-- ============================================= -->
<target name="warfile" description="Build the web application archive">
<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
<include name="*" />
<include name="WEB-INF/*.*" />
<exclude name="WEB-INF/web.xml" />
<include name="WEB-INF/classes/*.*" />
<include name="WEB-INF/lib/**" />
<exclude name="**/.*" />
</war>
</target>

4.5 打成war

#p#分页标题#e#

<target name="warfile" description="Build the web application archive">
<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
<include name="*" />
<include name="WEB-INF/*.*" />
<exclude name="WEB-INF/web.xml" />
<include name="WEB-INF/classes/*.*" />
<include name="WEB-INF/lib/**" />
<exclude name="**/.*" />
</war>
</target>

4.6 把几个任务串起来,弄一个default target

<target name="all">
<antcall target="clean" />
<antcall target="build" />
<antcall target="warfile" />
</target>

打完收功。在实践中发明,一些设置文件,如struts-config.xml ibatis和spring的xml都可以打进jar文件,spring资源文件好象不可,得单独copy至WEB-INF\classes下,别的,你的web文件夹下,事先得放好web.xml,以及一些tld文件哟。

    关键字:

在线提交作业