• Java持续集成(5) – 构建遵循WAR目录规范的Web工程


    有时工程并非遵循Maven目录规范的,而是遵循war[Web Application Archie file]目录规范

    开发方面,使用Sysdeo Eclipse Tomcat Launcher plugin支持开发、调试

    使用此目录结构的好处是直观,即所有文件和最终在服务器上运行时的目录结构一致

    坏处是不太好用Maven进行管理

    构建此类工程的一般步骤

    1. Jenkins从SVN拉取最新代码

    2. 使用Ant脚本完成构建、部署

    1) 编译WEB-INF/src下的所有java源码到WEB-INF/classes

    2) 将WEB-INF/src下所有非java文件拷贝到WEB-INF/classes

    3) 将整个工程打包成war

    4) 通过TCD[Tomcat Client Deployer]发布工程到服务器

    Ant构建、部署脚本示例

    <?xml version="1.0"?>
    <project name="test" basedir="." default="redeploy" xmlns:artifact="urn:maven-artifact-ant">
    
        <!-- Configure properties to access the Manager application -->
        <property name="path"     value=""/>
        <property name="url"      value="http://localhost:8080/manager/text"/>
        <property name="username" value="tomcat"/>
        <property name="password" value="tomcat"/>
        <property name="runtime-lib" value="D:	estlib"/>
    
        <path id="deployer.classpath">
            <fileset dir="${runtime-lib}">
                <include name="*.jar"/>
            </fileset>
        </path>
    
        <!-- Configure the custom Ant tasks for the Manager application -->
        <taskdef resource="org/apache/catalina/ant/catalina.tasks"
                classpathref="deployer.classpath"/>
    
        <target name="redeploy">
            <delete dir="target" />
            <delete dir="WEB-INF/classes" />
            <mkdir dir="target"/>
            <mkdir dir="WEB-INF/classes"/>
            
            
            <javac destdir="WEB-INF/classes" 
                optimize="off" 
                debug="on" 
                failonerror="false" 
                srcdir="WEB-INF/src" 
                encoding="UTF-8" 
                excludes="**/*.smap">
              <compilerarg value="-Xlint:unchecked"/>
              <classpath>
                <fileset dir="WEB-INF/lib">
                  <include name="*.jar"/>
                </fileset>
                <fileset dir="${runtime-lib}">
                  <include name="*.jar"/>
                </fileset>
              </classpath>
              <include name="**/*.java" />
            </javac>
            
            <copy todir="WEB-INF/classes">
              <fileset dir="WEB-INF/src">
                <exclude name="**/*.java" />
              </fileset>
            </copy>
            
            <jar destfile="target/test.war">
                <fileset dir="${basedir}">
                    <exclude name="axis2-web/**" />
                    <exclude name="target/**" />
                    <exclude name="work/**" />
                    <exclude name=".classpath" />
                    <exclude name=".project" />
                    <exclude name=".tomcatplugin" />
                    <exclude name="WEB-INF/src/**" />
                    <exclude name="WEB-INF/test/**" />
                    <exclude name="pom.xml" />
                    <exclude name="build.xml" />
                    <exclude name="build.properties" />
                </fileset>
            </jar>
    
            <deploy url="${url}" username="${username}" password="${password}"
                  path="${path}" war="target/test.war" update="true" />
        </target>
    </project>

    【注】

    1 ${runtime-lib}中存放的是从TCD压缩包中解压后的lib目录下的所有jar

    下载地址

    http://tomcat.apache.org/download-70.cgi

    http://tomcat.apache.org/download-80.cgi

     

    image

  • 相关阅读:
    golang linux安装
    vscode 插件
    windows访问eks pods
    go mod包管理
    beego创建项目
    Atcoder ARC-125
    AtCoder AGC003 简要题解
    Python 字符串转成变量名
    13_Go基础(binary)
    12_Go基础(iota)
  • 原文地址:https://www.cnblogs.com/xxt-mov/p/4264017.html
Copyright © 2020-2023  润新知