您的位置:首页 > 运维架构 > Tomcat

ant+svn+tomcat实现javaweb项目的自动构建

2016-11-22 16:20 603 查看
     ant+svn+tomcat实现,从svn拉取javaweb项目,然后自动编译发布到固定的目录,之后使用windows任务计划功能每天定点执行

由运维人员拉取代码,这样就可以实现自动化操作,不用每次人为去干预。参考的连接:http://www.cnblogs.com/taoweiji/p/3700915.html,
http://blog.csdn.net/pengchang_1981/article/details/50441253,一开始下载了svnant-1.0.0的版本,报如下的错误:
svnant的BUILD FAILED Problem: failed to create task or type svnSetting Cause: The name is undefined原因,后面换成了svnant-1.0.0

的版本,将lib的目录放在ant的lib下,执行build.bat就可以了。

    

    要完成这个前提是:你已经安装了tomcat/ant/jdk/svn。

    1.build.xml文件内容如下:

    

   
<project name="daka_main" basedir=".">

<!--############################################################项目目录 -->

<!--项目根-->
<property name="project" value="project" />
<property name="src" value="${project}/src" />
<property name="resources" value="${project}/src"/>
<property name="test" value="${project}/test"></property>
<property name="target" value="${project}/target"></property>
<property name="main-target" value="${project}/target/classes"/>
<property name="test-target" value="${project}/target/test-classes"/>
<!--web 目录 -->
<property name="web-root" value="${project}/WebRoot"/>

<!-- ant 属性文件 -->
<property file="build.properties"/>

<!--############################################################软件依赖 -->
<!--ant lib目录-->
<property name="ant-lib" value="${ant.home}/lib"/>
<!-- tomcat lib目录 -->
<property name="tomcat-lib" value="${tomcat.home}/lib"/>

<!-- 定义classpath-->
<path id="classpath">
<fileset dir="${ant-lib}" includes="***.jar"></fileset>
<fileset dir="${tomcat-lib}" includes="***.jar"></fileset>
<fileset dir="${web-root}/WEB-INF/lib" includes="***.jar"></fileset>
</path>

<!-- 清理-->
<target name="clean">
<delete dir="${project}"></delete>
</target>
<!-- 初始化-->
<target name="init" depends="clean">
<mkdir dir="${project}"/>
<mkdir dir="${main-target}"/>
<mkdir dir="${test-target}"/>
</target>

<!-- 检出代码 这里使用 export 不是checkout 二者区别 checkout会svn相关信息文件检出,export只是检出最新的文件-->
<path id="path.svnant">
<fileset dir="${basedir}">
<include name="**/*.jar"/>
</fileset>
</path>

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>
<target name="checkout" depends="init">
<svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="false"/>
<svn refid="svnparams">
<checkout url="${svn.url}" destPath="${project}" />
</svn>
</target>

<!-- 编译 -->
<target name="compile" depends="checkout">
<javac srcdir="${src}" destdir="${main-target}" encoding="UTF-8" includeAntRuntime="false">
<classpath refid="classpath"></classpath>
</javac>
<copy todir="${main-target}">
<fileset dir="${resources}">
<exclude name="sql/**"/>
</fileset>
</copy>
</target>
<!-- 打war包 -->
<target name="build" depends="compile">

<war destfile="${target}/${deploy.name}.war" webxml="${web-root}/WEB-INF/web.xml">
<fileset dir="${web-root}"></fileset>
<classes dir="${main-target}"></classes>
</war>
<delete dir="${main-target}"></delete>
<delete dir="${test-target}"></delete>
</target>

<!--shutdowntomcat -->

<target name="shutdowntomcat" description="========shutdowntomcat===========">
<echo message="正在关闭服务器。。。" />
<exec executable="${tomcat.home}/bin/shutdown.bat" failonerror="false"></exec>
<echo message="服务器成功关闭" />
<sleep seconds="10"/>
<!-- 删除之前解压的war包-->
<delete dir="${tomcat.home}/webapps/${deploy.name}"></delete>
</target>

<!--startuptomcat -->
<target name="startuptomcat" description="========startuptomcat===========">
<sleep seconds="5"/>
<echo message="正在启动服务器。。。" />
<exec executable="${tomcat.home}/bin/startup.bat" failonerror="false"></exec>
<echo message="服务器启动成功" />
</target>

<!--部署到tomcat下面 -->
<target name="deploy" depends="build">
<ant target="shutdowntomcat"/>
<copy file="${target}/${deploy.name}.war" todir="${tomcat.home}/webapps" />
<ant target="startuptomcat"/>
</target>

</project>


    2.build.properties配置本地的tomcat/svn的JavaWeb项目地址以及用户名和密码
tomcat.home=D:\exlisttomcat\apache-tomcat-6.0.35
ant.home=E:\ant\apache-ant-1.9.7-bin

svn.url=svn://192.168.0.1/mtp/ceshi/
svn.username=qiulinhe
svn.password=Qiulinhe2483215

deploy.name=imweb


    3.bat文件如下:
@echo off
E:
cd imweb
ant deploy
exit

   1. 运行报错的截图,由于svn用户名和密码写错,写对了就可以了,而且需要javaweb的根目录以供参考参考:



    运行成功之后,就会在目录下生成从svn拉取的代码:



    2.拉取了svn的代码之后,要对src的目录下的java代码进行编译,会出现很多编译的错误,原因是因为你的tomcat的lib中缺少了你工程目录运行的jar包,先复制进去就可以了,然后重新打包就可以了。成功之后会生成一个war包,如下图:



      这个war包,放在tomcat的webapps目录下,重启一下tomcat,会自动解压的,不过还有一个问题是这个工程,缺少了一些运行的jar包,还是无法运行,需要解决。

    ant工具还是很强大的,有时间要好好研究一下,就到此为止吧,希望对有同样需求的额人有帮助,感谢前辈的贡献。

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