一个简单的tomcat部署方案
需求如下: 要将widow下开发的web应用部署到linux的机器下step1)在本地使用ant将项目打成war ant脚本如下:
·
需求如下:
要将widow下开发的web应用部署到linux的机器下
step1)在本地使用ant将项目打成war
ant脚本如下:
<project name="Build" default="war" basedir=".">
<property name="project.name" value="baby"/>
<property name="build.dir" location="build"/>
<property name="src.dir" location="src"/>
<property name="src.dir.java" location="${src.dir}/java"/>
<property name="src.dir.config" location="${src.dir}/config"/>
<property name="lib.dir" location="lib"/>
<property name="lib.dir.run" location="${lib.dir}/run"/>
<property name="dist.dir" location="dist"/>
<property name="web.dir" location="htdocs"/>
<path id="project.classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<pathelement location="${build.dir}"/>
</path>
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}"/>
</target>
<target name="compile" depends="prepare">
<javac srcdir="${src.dir.java}" destdir="${build.dir}">
<classpath refid="project.classpath"/>
</javac>
<copy todir="${build.dir}">
<fileset dir="${src.dir.config}"/>
</copy>
</target>
<target name="xdoclet" depends="compile,springdoclet,hibernatedoclet" />
<target name="hibernatedoclet">
<taskdef name="hibernatedoclet" classpathref="project.classpath" classname="xdoclet.modules.hibernate.HibernateDocletTask" />
<hibernatedoclet excludedTags="@version,@author,@todo,@see" destDir="${build.dir}" addedTags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}">
<fileset dir="${src.dir.java}" includes="**/domain/*.java" />
<hibernate version="2.0" />
</hibernatedoclet>
</target>
<target name="springdoclet">
<taskdef name="springdoclet" classpathref="project.classpath" classname="xdoclet.modules.spring.SpringDocletTask" />
<springdoclet destDir="${build.dir}">
<fileset dir="${src.dir.java}">
<include name="**/service/impl/*.java" />
</fileset>
<springxml destinationFile="applicationContext-${project.name}-service.xml" />
</springdoclet>
<springdoclet destDir="${build.dir}">
<fileset dir="${src.dir.java}">
<include name="**/dao/**/*.java" />
</fileset>
<springxml destinationFile="applicationContext-${project.name}-dao.xml" />
</springdoclet>
</target>
<target name="war" depends="xdoclet">
<war destfile="${dist.dir}/baby.war"
webxml="${web.dir}/WEB-INF/web.xml" >
<classes dir="${build.dir}"/>
<fileset dir="${web.dir}" excludes="WEB-INF/**/*"/>
<lib dir="${lib.dir.run}"/>
</war>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
</project>
2)step2配置linux机器上的tomcat服务器
<Host appBase="/var/www/baby" name="baby.mofile.cn" debug="0" unpackWARs="true">
<Context displayName="Welcome to Tomcat" docBase="/var/www/baby/baby" path="" reloadable="true" debug="0">
</Context>
</Host>
注意上面的是appBase是虚拟主机目录,name是虚拟主机域名,docBase是服务器根目录,unpackWARs=“true"将war解压
3)step3 拷贝文件
通过secureFX将baby.war拷到linux下的/var/www/baby
完成这面步骤,启动linux下的tomcat服务器,ok
总结:
不得不说这不是个成熟的方案,虽然可行。这种半自动的部署方式,没有完全利用ant的特性。抽象来说没有充分利用程序的能力将人从重复的劳动解脱出来。
完全可以利用ant本地打包再远程部署,一键搞定。或者直接在linux机器上写个shell脚本再调用linux机器上的ant脚本,将版本服务器中的文件checkout进行构建.
要将widow下开发的web应用部署到linux的机器下
step1)在本地使用ant将项目打成war
ant脚本如下:
<project name="Build" default="war" basedir=".">
<property name="project.name" value="baby"/>
<property name="build.dir" location="build"/>
<property name="src.dir" location="src"/>
<property name="src.dir.java" location="${src.dir}/java"/>
<property name="src.dir.config" location="${src.dir}/config"/>
<property name="lib.dir" location="lib"/>
<property name="lib.dir.run" location="${lib.dir}/run"/>
<property name="dist.dir" location="dist"/>
<property name="web.dir" location="htdocs"/>
<path id="project.classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<pathelement location="${build.dir}"/>
</path>
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}"/>
</target>
<target name="compile" depends="prepare">
<javac srcdir="${src.dir.java}" destdir="${build.dir}">
<classpath refid="project.classpath"/>
</javac>
<copy todir="${build.dir}">
<fileset dir="${src.dir.config}"/>
</copy>
</target>
<target name="xdoclet" depends="compile,springdoclet,hibernatedoclet" />
<target name="hibernatedoclet">
<taskdef name="hibernatedoclet" classpathref="project.classpath" classname="xdoclet.modules.hibernate.HibernateDocletTask" />
<hibernatedoclet excludedTags="@version,@author,@todo,@see" destDir="${build.dir}" addedTags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}">
<fileset dir="${src.dir.java}" includes="**/domain/*.java" />
<hibernate version="2.0" />
</hibernatedoclet>
</target>
<target name="springdoclet">
<taskdef name="springdoclet" classpathref="project.classpath" classname="xdoclet.modules.spring.SpringDocletTask" />
<springdoclet destDir="${build.dir}">
<fileset dir="${src.dir.java}">
<include name="**/service/impl/*.java" />
</fileset>
<springxml destinationFile="applicationContext-${project.name}-service.xml" />
</springdoclet>
<springdoclet destDir="${build.dir}">
<fileset dir="${src.dir.java}">
<include name="**/dao/**/*.java" />
</fileset>
<springxml destinationFile="applicationContext-${project.name}-dao.xml" />
</springdoclet>
</target>
<target name="war" depends="xdoclet">
<war destfile="${dist.dir}/baby.war"
webxml="${web.dir}/WEB-INF/web.xml" >
<classes dir="${build.dir}"/>
<fileset dir="${web.dir}" excludes="WEB-INF/**/*"/>
<lib dir="${lib.dir.run}"/>
</war>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
</project>
2)step2配置linux机器上的tomcat服务器
<Host appBase="/var/www/baby" name="baby.mofile.cn" debug="0" unpackWARs="true">
<Context displayName="Welcome to Tomcat" docBase="/var/www/baby/baby" path="" reloadable="true" debug="0">
</Context>
</Host>
注意上面的是appBase是虚拟主机目录,name是虚拟主机域名,docBase是服务器根目录,unpackWARs=“true"将war解压
3)step3 拷贝文件
通过secureFX将baby.war拷到linux下的/var/www/baby
完成这面步骤,启动linux下的tomcat服务器,ok
总结:
不得不说这不是个成熟的方案,虽然可行。这种半自动的部署方式,没有完全利用ant的特性。抽象来说没有充分利用程序的能力将人从重复的劳动解脱出来。
完全可以利用ant本地打包再远程部署,一键搞定。或者直接在linux机器上写个shell脚本再调用linux机器上的ant脚本,将版本服务器中的文件checkout进行构建.
更多推荐
已为社区贡献2条内容
所有评论(0)