интересный вопрос. Я не уверен, что wldeploy может делать то, что вы хотите. Один из подходов, который может сработать, - использовать задачу муравья wlconfig. Вы можете использовать его, чтобы получить 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>