Glassfish v3中的sun-appserv-ant.jar在哪里
我创建了一个小型示例EJB项目,我想使用ant将应用程序部署到Glassfish v3。
我花了很多时间在谷歌试图实现这一点,所有的蚂蚁样本似乎都引用了一个名为“sun-appserv-ant.jar”的jar文件,该文件应该位于应用程序服务器的modules目录中然而,安装,我无法在任何地方找到它,也无法找到原因,或者甚至还有基于蚂蚁的替代品。
由于
答案 0 :(得分:5)
sun-appserv-ant.xml文件未随v3提出。
你并没有被完全困住。
您可read about the Ant exec
task,可用于触发asadmin commands。
如果您非常喜欢冒险,您可能需要调查随Java EE 6 SDK一起提供的示例项目使用的bp项目框架。
您可以通过查看glassfish-samples repository中的代码来了解bp项目框架。
答案 1 :(得分:3)
您应该通过GlassFish更新工具
添加glassfish-ant-tasks
模块
答案 2 :(得分:1)
经过多次痛苦后,我找到了一个如何使用V3.x ant工具here
的示例对于非法语人士来说,缺点是它是法语。好处是Java部分仍然是Java。
据我所知,Ant任务现在与Sun(Oracle)记录的内容有很大不同:
您必须使用Glassfish服务器更新工具获取glassfish-ant-tasks
模块。
这将导致下载文件* glassfish_dir * / lib / ant / ant-tasks.jar。这必须包含在您的类路径
在build.xml中定义as-ant-init
目标
<target name="as-ant-init">
<taskdef name="sun-appserv-deploy"
classname="org.glassfish.ant.tasks.DeployTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-undeploy"
classname="org.glassfish.ant.tasks.UndeployTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-component"
classname="org.glassfish.ant.tasks.ComponentTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-admin"
classname="org.glassfish.ant.tasks.AdminTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-redeploy"
classname="org.glassfish.ant.tasks.RedeployTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-start-server"
classname="org.glassfish.ant.tasks.StartServerTask"
classpath="${build-lib}/ant-tasks.jar" />
<taskdef name="sun-appserv-stop-server"
classname="org.glassfish.ant.tasks.StopServerTask"
classpath="${build-lib}/ant-tasks.jar" />
</target>
编写部署目标。这些规则与文档中的内容相似, EXCEPT
一个。删除对旧版本中使用的<server>
元素的引用。
B中。现在,旧版API中<server>
附加的所有属性都会直接附加到包含元素,例如<sun-appserv-deploy>
,如下所示:
<target name="deploy">
<sun-appserv-deploy
user="${glassfish.admin-user}"
passwordfile="${glassfish.passwordfile}}"
host="${glassfish.host}"
port="${glassfish.admin-port}"
installDir="${asinstalldir}"
upload="true" >
<component
file="${dist.warfile}"
name="My application"
contextroot="${glassfish.context-root}" />
</sun-appserv-deploy>
</target>