-2
我正在開發一個動態Web項目。 和我有問題,當我想要使用ant腳本來構建它。 我的目的是採用三層概念,即在不同的機器上具有業務層和表示層。 我使用WebLogic Server作爲Web服務器(表示層)和應用服務器(經營層)用於Web和App部署的Ant腳本構建
這裏是我的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>
怎樣建設分開?以及來自表示層的請求如何與業務層交流?在weblogic中是否有任何配置來完成這兩個層的通信? 在此先感謝。
你的問題很混亂。您可以執行諸如構建2 war文件之類的操作,並將每個文件部署到Weblogic中的其他受管服務器。但很難說出你在問什麼。你在某處遇到錯誤嗎? – 2015-01-21 16:05:20
ANT主要是一個構建工具。無論如何,使用它來構建與每個層相關聯的構件(JAR或WAR或EAR文件),但我建議調查適當的管理部署機制。畢竟,您需要設置動態信息,例如主機名/ IP地址和憑證。 – 2015-01-21 18:15:19