Ant脚本的构建Web和应用程序部署 [英] Ant Script build for Web and App Deployment

查看:452
本文介绍了Ant脚本的构建Web和应用程序部署的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个动态的Web项目。
我有,当我想用​​Ant脚本来构建它的问题。
我的目的是采用三层概念,这是在不同的机器上的业务层和presentation层。
我使用WebLogic Server作为Web服务器(presentation层)和应用服务器(业务层)

i am developing a dynamic web project. and i having problem when i want to build it using ant script. my purpose is to adopt three-tier concept, which is have business-layer and presentation-layer in different machine. i use weblogic server as web server (presentation layer) and app server (business layer)

这是我的build.xml:

here is my build.xml :


<property name="build" value="./build" />
<property name="dist" value="./dist" />
<!-- <property name="conf" value="./config" /> -->
<property name="src" value="./src" />
<property name="web" value="./WebContent" />
<property name="lib" value="${web}/WEB-INF/lib" />
<property name="webinf" value="${web}/WEB-INF" />
<property name="metainf" value="${web}/META-INF" />
<property name="servletLib" value="C:\Oracle\MiddlewareOneBC\wlserver_12.1\server\lib" />
<property name="deploydir" value="C:\Oracle\MiddlewareOneBC\user_projects\domains\OneBCDomain\autodeploy" />
<property name="project.name" value="OneBCApplication" />

<path id="build.classpath">
    <fileset dir="${lib}" includes="**/*.jar" />
    <fileset dir="${servletLib}" includes="**/*.jar" />
</path>

<target name="clean">
    <delete dir="${build}" />
    <delete dir="${dist}" />
</target>

<target name="init">
    <tstamp />
    <mkdir dir="${build}" />
    <mkdir dir="${build}/classes" />
    <mkdir dir="${dist}" />
</target>

<target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${build}/classes" optimize="on" includeantruntime="false">
        <classpath refid="build.classpath" />
    </javac>
    <copy todir="${build}/classes">
        <fileset dir="${src}" excludes="ddl/*" />
        <fileset dir="${src}" excludes="dml/*" />
        <fileset dir="${src}" excludes="**/*.xls" />
        <fileset dir="${src}" includes="**/*.xml" />
        <fileset dir="${src}" includes="**/*.properties" />
        <!-- <fileset dir="${conf}" includes="**/*" /> -->
    </copy>
</target>

<target name="war" depends="compile">
    <war destfile="${dist}/${project.name}.war" webxml="${webinf}/web.xml">
        <lib dir="${lib}" />
        <classes dir="${build}/classes"/>
        <fileset dir="${web}">
            <include name="**/*.*" />
            <exclude name="WEB-INF/lib/*" />
        </fileset>
    </war>
</target>

<target name="ear" depends="war">
    <ear destfile="${dist}/${project.name}EAR.ear" appxml="${metainf}/application.xml">
        <fileset dir="${dist}" includes="*.war" />
    </ear>
</target>

<target name="warweb" depends="compile">
    <war destfile="${dist}/web/${project.name}Web.war" webxml="${webinf}/web.xml">
        <lib dir="${lib}" excludes="**/BV_*.*" />
        <classes dir="${build}/classes">
            <!-- <exclude name="**/*.java"/>
            <exclude name="**/*.class"/> -->
            <exclude name="com/**"/>
        </classes>

        <fileset dir="${web}">
            <include name="**/*.*" />
            <exclude name="WEB-INF/lib/*" />
        </fileset>
    </war>
     <jar destfile="${dist}/lib/${project.name}.jar" basedir="${build}/classes"/>
</target>

<target name="earweb" depends="warweb">
    <ear destfile="${dist}/${project.name}Static.ear" appxml="${metainf}/application.xml">
        <fileset dir="${dist}/web" includes="*.war" />
    </ear>
</target>

    <target name="earapp" depends="warweb">
    <ear destfile="${dist}/${project.name}App.ear" appxml="${metainf}/application.xml">
        <fileset dir="${dist}/web" includes="*.war" />
        <zipfileset dir="${dist}/lib" includes="*.jar" prefix="APP-INF/lib" />
        <zipfileset dir="${lib}" includes="**/BV_*.*" prefix="APP-INF/lib" />           
    </ear>
</target>



<target name="deploywar" depends="ear">
    <copy todir="${deploydir}">
        <fileset dir="${dist}" includes="*.war" />
    </copy>
</target>

<target name="deployear" depends="ear">
    <copy todir="${deploydir}">
        <fileset dir="${dist}" includes="*.ear" />
    </copy>
</target>

<target name="undeploy">
    <delete file="${deploydir}/${project.name}EAR.ear"/>
    <delete file="${deploydir}/${project.name}EAR.war"/>
</target>

如何单独编译?如何从presentation层的要求可以与业务层comunicate?有没有在weblogic有工作要做,以使这些两层通信的所有配置?
先谢谢了。

how to build it separately ? and how the request from presentation layer can comunicate with business layer? is there any configuration in weblogic that has to be done to made these two layer communicate? thanks in advance.

推荐答案

使用文件集的任务可以指定你想要的JAR文件包括应用服务器或Web服务器。

Using fileset task you specify what jar file you want to include for app server or web server.

    <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
     <fileset dir="${build.dir}" includes="*.jar,*.war"/>
    </ear>

只是你们两个耳朵的任务创建两个耳朵一个用于应用服务器,一个用于Web服务器。

just you two ear task to create two ear one for app server and one for web server.

这篇关于Ant脚本的构建Web和应用程序部署的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆