jakarta-ee - 在WebSphere 6中部署的EAR的build.xml示例

标签 jakarta-ee deployment ant websphere ear

我试图说服我的提供者使用ANT而不是Rational Application Development,以便任何人都可以随时随地以任何方式重新编译,重新检查,重新部署该解决方案。 :P

我为一个生成JAR文件的项目启动了一个build.xml,但是在此停了下来,我需要真实的示例来比较注释。我的好 friend !我没有任何人要聊这个!

到目前为止,这是我的build.xml

(*)我根据的suggestion编辑了问题,以使用pastebin.ca

最佳答案

我的环境:Fedora 8; WAS 6.1(与Rational Application Developer 7一起安装)

在这方面的文档非常差,并且缺乏实际示例。

使用WebSphere Application Server(WAS)Ant任务

要按此处所述运行,您需要使用 ws_ant.sh ws_ant.bat 命令从服务器配置文件 bin目录中运行它们。

<?xml version="1.0"?>
<project name="project" default="wasListApps" basedir=".">
    <description>
        Script for listing installed apps.
        Example run from:
        /opt/IBM/SDP70/runtimes/base_v61/profiles/AppSrv01/bin
    </description>

    <property name="was_home"
        value="/opt/IBM/SDP70/runtimes/base_v61/">
    </property>
    <path id="was.runtime">
        <fileset dir="${was_home}/lib">
            <include name="**/*.jar" />
        </fileset>
        <fileset dir="${was_home}/plugins">
            <include name="**/*.jar" />
        </fileset>
    </path>
    <property name="was_cp" value="${toString:was.runtime}"></property>
    <property environment="env"></property>

    <target name="wasListApps">
        <taskdef name="wsListApp"
            classname="com.ibm.websphere.ant.tasks.ListApplications"
            classpath="${was_cp}">
        </taskdef>
        <wsListApp wasHome="${was_home}" />
    </target>

</project>

命令:
./ws_ant.sh -buildfile ~/IBM/rationalsdp7.0/workspace/mywebappDeploy/applist.xml

部署脚本
<?xml version="1.0"?>
<project name="project" default="default" basedir=".">
<description>
Build/Deploy an EAR to WebSphere Application Server 6.1
</description>

    <property name="was_home" value="/opt/IBM/SDP70/runtimes/base_v61/" />
    <path id="was.runtime">
        <fileset dir="${was_home}/lib">
            <include name="**/*.jar" />
        </fileset>
        <fileset dir="${was_home}/plugins">
            <include name="**/*.jar" />
        </fileset>
    </path>
    <property name="was_cp" value="${toString:was.runtime}" />
    <property environment="env" />
    <property name="ear" value="${env.HOME}/IBM/rationalsdp7.0/workspace/mywebappDeploy/mywebappEAR.ear" />

    <target name="default" depends="deployEar">
    </target>

    <target name="generateWar" depends="compileWarClasses">
        <jar destfile="mywebapp.war">
            <fileset dir="../mywebapp/WebContent">
            </fileset>
        </jar>
    </target>

    <target name="compileWarClasses">
        <echo message="was_cp=${was_cp}" />
        <javac srcdir="../mywebapp/src" destdir="../mywebapp/WebContent/WEB-INF/classes" classpath="${was_cp}">
        </javac>
    </target>

    <target name="generateEar" depends="generateWar">
        <mkdir dir="./earbin/META-INF"/>
        <move file="mywebapp.war" todir="./earbin" />
        <copy file="../mywebappEAR/META-INF/application.xml" todir="./earbin/META-INF" />
        <jar destfile="${ear}">
            <fileset dir="./earbin" />
        </jar>
    </target>

    <!-- http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/ant/tasks/package-summary.html -->
    <target name="deployEar" depends="generateEar">
        <taskdef name="wsInstallApp" classname="com.ibm.websphere.ant.tasks.InstallApplication" classpath="${was_cp}"/>
        <wsInstallApp ear="${ear}" 
            failonerror="true" 
            debug="true" 
            taskname=""
            washome="${was_home}" />
    </target>

</project>

笔记:
  • 您只能运行一次!如果正在使用该应用程序名称,则无法安装-请参阅 wsUninstallApp
  • 等其他任务
  • 可能也不会启动应用程序
  • 您需要在服务器上运行此脚本,脚本非常脆弱

  • 替代

    我可能会使用Java管理扩展(JMX)。您可以编写一个文件上传servlet,该servlet接受EAR并使用部署MBean在服务器上部署EAR。您只需通过HTTP发布文件即可。这样可以避免对开发/构建计算机的任何WAS API依赖关系,并且可以独立于任何一个项目。

    关于jakarta-ee - 在WebSphere 6中部署的EAR的build.xml示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4046/

    相关文章:

    java - jsp 调用的 jar 方法读取的文件的位置

    java - EJB3 计划无法正常工作

    ruby-on-rails - 推送到 heroku 使我无法使用默认设置获取 OPENSHIFT_SECRET_TOKEN

    java - Sonarqube 评估 - Ant Build 失败

    java.lang.ClassNotFoundException : main. java.KmToMileTest

    java - 从部署在 tomcat 服务器中的 JSP 打开共享本地文件夹(C 盘或 D 盘等)

    java - JAXB 不序列化完整的对象图

    javascript - Gulp 指纹识别 + 生产部署

    C++ linux 在部署环境中安装可执行文件

    java - ant 1.10.x是否支持log4j2