繁体   English   中英

通过Java中的ANT为所有平台部署Web项目到Glassfish

[英]Deployment of a web project to Glassfish via ANT in Java for all platforms

我有一个部署war文件的Web项目,现在我可以在Windows中部署到Glassfish。 这是我的build.xml的必要部分。

<target
    name="deploywar" 
    description="Varolan WAR dosyasını yayınlar." >
    <echo level="info" >
        Proje sunucuda yayinlaniyor... 
    </echo>
    <exec
        executable="cmd"
        failonerror="true"
        output="${out.txt}" >
        <arg value="/c" />
        <arg value="${glassfish.path}/glassfish/bin/asadmin --passwordfile ${password.file} deploy --contextroot /GlassfishDeployment ${deployyolu}/${war.filename}" />
    </exec>
</target>

但我想重新编写我的代码以在所有平台上工作。 我做了一些关于它的搜索,最终得到了这个有用的页面 我想尝试这种方法。 我在项目中添加了必要的Jar文件。 然后我做了这些任务定义;

<fileset dir="WebContent/WEB-INF/lib">
<include name="sun-appserv-ant.jar"/>
</fileset>

<target name="as-ant-init">
<taskdef name="sun-appserv-deploy"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask" />
<taskdef name="sun-appserv-undeploy"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.UndeployTask" />
<taskdef name="sun-appserv-component"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.ComponentTask" />
<taskdef name="sun-appserv-admin"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.AdminTask" />
<taskdef name="sun-appserv-jspc"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.SunJspc" />
<taskdef name="sun-appserv-update"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.UpdateTask" />
<taskdef name="sun-appserv-instance"
  classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.InstanceTask" />
 <taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen" />
 <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" />
<classpath path="${glassfish.path}/lib/sun-appserv-ant.jar" />
</target>

我最终得到了这个错误;

taskdef class org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask cannot be found

任何人都可以帮我解决这个错误或其他方式部署w / o平台? 谢谢。

我在这个回复中使用了这个代码片段;

<presetdef name="asadmin">
  <java jar="${glassfish.home}/modules/admin-cli.jar" fork="true" jvm="${java.home}/bin/java" >
    <arg line="--port ${glassfish.admin.port}" />
  </java>
</presetdef>
<target name="deploy">
  <asadmin failonerror="true">
    <arg value="deploy" />
    <arg value="--force=true" />
    <arg value="${ear.file}" />
  </asadmin>
</target>

它解决了我的问题。 谢谢; https://stackoverflow.com/a/7299637/1400515

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM