2011-02-03 10 views
1
  • を使用して、その中に既に存在していない場合にのみ、どのように私はそれが私はant testappを実行したときにwldeploy Antタスク
  • を使用して、その中に存在しない場合にのみのWebLogicでアプリケーションを展開することができますコンソールメッセージ(すなわち、sysout)で見ることができる限り、それは既存のアプリケーションの上に毎回新鮮なものを配備します。アプリはすでにのWebLogic Serverに存在しない場合は興味深い

<target name="testapp" depends="init-wls"> <wldeploy action="deploy" verbose="true" debug="true" name="testapp" failonerror="false" ... source="testapp.war"/> </target> 展開のWebLogicでのアプリが、それはアリのwldeployタスクに

+0

あなたはに依存していると言うの目標のためのXMLを投稿することができます:、ここでの仮定は、我々は、その後のMBeanを見つけることができ、それがすでに展開されている場合には、これらの豆はAppDeploymentsの下で暮らすため、有効な仮定であるべきであるということですこれです。大きすぎない場合は、build.xml全体を投稿してください。 –

+0

これはちょうど標準的なantの依存性です ' ...' –

答えて

3

(より効率的に)私はいくつかの他のターゲットに依存関係としてこのAntターゲットを呼び出して、私はこれが唯一実行したい

  • 質問。 wldeployがあなたが望むことができるかどうかはわかりません。うまくいくかもしれないアプローチの1つは、wlconfig antタスクを使用することです。これを使用してApplicationRuntimeMBeansを取得し、ApplicationName属性(wlconfigタスク)を照会して、アプリケーションがデプロイされているかどうかを調べることができます。スーパーは簡単ではありませんが、少なくともアプリケーションの再デプロイメントは避けてください。

    これは....申し訳ありませんが、それが実際に可能であるかどうかわからないので、私の頭の上からだけで素早くアイデアです:)

    --edit:それを試してみた、このようなものは動作するはずです

    <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> 
    
  • +1

    このクエリはクラスタ化された環境では機能しませんでした。これは私が考えるより優れたものです: '$ {weblogic.domain}:Name = $ {weblogic.application.name}、Type = Application' –

    関連する問題