2011-01-31 14 views
1

私はMavenのは、JBoss 6サーバーにこの方法をアプリケーションをデプロイするプラグインでハドソンを使用したい:jbossサーバーにアプリケーションをデプロイするためのhudson + maven + cargoの使用方法は?

  1. ハドソンは、pom.xmlファイルで作業
  2. をインストールするが、貨物プラグイン(バージョン1.0に定義されたクリーンMavenを呼び出します。この順に6)
  3. 貨物プラグインを停止し、開始目標にインストールフェーズの実行再デプロイを定義している()

すべてが正常に動作します - プロジェクトはきれいにしてからインストールされ、その後、JBossのサーバーが停止しています(貨物を使用して:停止)、再び開始する(貨物を使用して:開始)。開始の目標の間に私のプロジェクトがjbossに展開された戦争があります。私が自分のウェブをテストすると、それは動作し、すべての変更が存在します。

唯一の問題は、Jbossサーバーの起動後、 "[INFO] Ctrl + Cキーを押してコンテナを停止する"というメッセージが表示され、実行が正常に終了しないことです。Ctrlキーを押すのを待ちます-C。これは標準的な貨物です。結果は、ハドソンの仕事は成功裏に終わらないということです。

私が今質問しているのは、この小さな問題の解決策のいくつかです。この状態になるまでには長い時間(約16時間)かかってしまい、完全にそれを再加工しなければならないと私はうれしくありません。 、

  • 力ハドソン、バックグラウンドでのJBossを実行するために
  • 力貨物バックグラウンドでMavenのタスクを実行するには(いくつかの産卵:

    私のアイデアはどのようにそれが行くことができる(しかし、私は有益な何かをグーグルすることができませんでした)フォーク、JVMパラメータ、JBossの実行時引数)、バックグラウンドでタスクを実行するための

  • 力Mavenは

私はこのソリューションをしようとしている理由私はトンに恒久的に実行されているのJBoss持つようにしたいということです彼はサーバーと貨物リモート展開オプションは私には良くない。なぜなら、システムリソースが多すぎるからだ。このソリューションはプロジェクトをインストールしてからサーバーを再起動するのに適しているはずです(停止開始)。

ありがとうございました。ここに私の貨物プラグインの設定は次のとおりです。trueに<wait>プロパティを設定することについて

<plugin> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-maven2-plugin</artifactId> 
      <version>1.0.6</version> 
      <configuration> 
       <container> 
        <containerId>jboss6x</containerId> 
        <append>false</append> 
        <timeout>300000</timeout> 
        <home>/atteq/jboss</home> 
       </container> 
       <configuration> 
        <properties> 
         <cargo.servlet.port>8080</cargo.servlet.port> 
         <cargo.jboss.configuration>atteq-minimal</cargo.jboss.configuration> 
         <cargo.logging>high</cargo.logging> 
         <cargo.rmi.port>1099</cargo.rmi.port> 
         <cargo.jvmargs>-XX:PermSize=512m -XX:MaxPermSize=1024 
         -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled 
         -XX:+CMSClassUnloadingEnabled</cargo.jvmargs> 
         <cargo.runtime.args>--host 0.0.0.0</cargo.runtime.args> 

        </properties> 
         <type>existing</type> 
        <home>/atteq/jboss/server/atteq-minimal</home> 
       <deployables> 
        <deployable> 
         <groupId>roztocto</groupId> 
         <artifactId>roztocto</artifactId> 
         <type>war</type> 
        </deployable> 
       </deployables> 

        </configuration> 
       </configuration> 
      <executions> 
       <execution> 
        <id>redeploy</id> 
        <phase>install</phase> 
        <goals> 
         <goal>stop</goal> 
         <goal>start</goal> 
        </goals> 
       </execution> 
      </executions> 
      <dependencies> 
        <dependency> 
         <groupId>org.codehaus.cargo</groupId> 
         <artifactId>cargo-core-tools-jboss-deployer-5.1-and-onwards</artifactId> 
         <version>1.0.6</version> 
        </dependency> 
       <dependency> 
        <groupId>org.jboss.jbossas</groupId> 
        <artifactId>jboss-as-profileservice-client</artifactId> 
        <version>6.0.0.Final</version> 
        <type>pom</type> 
       </dependency> 

        <dependency> 
         <groupId>org.jboss.profileservice</groupId> 
         <artifactId>jboss-profileservice-spi</artifactId> 
         <version>0.2.2</version> 
        </dependency> 

        <dependency> 
         <groupId>org.jboss.jbossas</groupId> 
         <artifactId>jboss-as-client</artifactId> 
         <version>6.0.0.Final</version> 
         <type>pom</type> 
        </dependency> 
      </dependencies> 

     </plugin> 
+0

この問題の解決策を見つけましたか?私も同じことを達成しようとしています。 – Sahil

答えて

2

どのように? docs

<wait> Decides if Cargo should wait after the container is 
      started or not         Defaults to true 
+0

良いですが、そうではありません。をfalseに設定すると、コンテナが開始されて停止します(Ctrl-cを停止するのを待たずにすぐに停止します)。私はコンテナ(jboss)が始動後に走り続けるために必要です。 – Lubbo

+0

待機パラメータが正しい場所に配置されていることを確認してください。あなたの例では、次のように追加してみてください:... true ... – redochka

1

によるとハドソンは、実行中のすべてのプロセスを監視し、それらはすべて終了するまで行われたビルドを考慮しません。私は貨物に精通していませんが、ここではハドソンとの私の経験からのメモです。あなたのハドソン構成

  • 設定BUILD_IDにtrueに-Dhudson.util.ProcessTreeKiller.disable変数の環境を設定し、バックグラウンド
    • ランのJBoss:あなたがする必要があるかもしれモニタネットを通じてプロセスを取得するには= dontKillMeをシェル環境変数として使用

    ハドソンwiki hereを参照してください。 またはJenkins wiki here

    ジェンキンスとハドソンは基本的に同じですが、最近の分割には2つの側面があります。 JenkinsグループとOracle Hudsonグループの詳細を読ませていただきます。編集:もその質問How to choose between Hudson and Jenkins?

  • 関連する問題