Развертывание приложения в weblogic только в том случае, если оно отсутствует в нем с помощью задачи ant wldeploy - PullRequest
1 голос
/ 03 февраля 2011
  • как я могу развернуть приложение в weblogic только в том случае, если оно отсутствует в нем с помощью задачи wldeploy ant
  • когда я запускаю ant testapp, он развертывается заново каждый раз поверх существующего приложения, насколько я мог видеть в сообщениях консоли (то есть в sysout).
  • Я называю эту цель муравья зависимостью в какой-то другой цели, и я хочу, чтобы она запускалась, только если приложение еще не присутствует на сервере weblogic (чтобы быть более эффективным)

<target name="testapp" depends="init-wls"> <wldeploy action="deploy" verbose="true" debug="true" name="testapp" failonerror="false" ... source="testapp.war"/> </target>

1 Ответ

3 голосов
/ 23 марта 2011

интересный вопрос. Я не уверен, что 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>
...