ant testapp
时,就我在控制台消息中所见(即在sysout中),它每次都会在现有应用程序上进行部署。
<target name="testapp" depends="init-wls">
<wldeploy action="deploy" verbose="true" debug="true"
name="testapp" failonerror="false"
...
source="testapp.war"/>
</target>
答案 0 :(得分:3)
一个有趣的问题。我不确定wldeploy能否做你想做的事。一种可能有效的方法是使用wlconfig ant任务。您可以使用它来获取ApplicationRuntimeMBeans,然后查询其ApplicationName属性(再次使用wlconfig任务)以查看是否已部署应用程序。不是非常简单,但至少你会避免重新部署应用程序。
这只是我头脑中的一个简单的想法,所以不确定它是否在实践中可行,对不起.... :)
- 编辑:尝试过,这样的事情应该有效,这里的假设是,如果我们可以找到MBean,那么它已经部署,这应该是一个有效的假设,因为这些bean住在AppDeployments下:
<project name="test" default="deploy">
<property name="domainName" value="ejbTestDomain"/>
<property name="serverName" value="AdminServer"/>
<property name="appName" value="ejbWebEAR"/>
<target name="findApp">
<wlconfig url="t3://localhost:7001" username="weblogic" password="password_for_weblogic">
<query pattern="${domainName}:ServerRuntime=${serverName},Name=${appName},*,Type=ApplicationRuntime" property="app.is.deployed"/>
</wlconfig>
</target>
<target name="deploy" unless="app.is.deployed" depends="findApp">
<echo message="Deploying..."/>
<!-- deploy using wldeploy task -->
</target>
</project>