3

私は現在、カーゴを使用して、アトラシアンの竹を介してリモートのグラスフィッシュ 3.1.2 にアプリケーションをデプロイしようとしています。これは開発環境であるため、バージョン番号が異なる同じアプリケーションが毎回同じコンテキスト ルートにデプロイされます。

しかし、Mavenの目標でジョブを実行するたびに:

org.codehaus.cargo:cargo-maven2-plugin:redeploy

エラーが発生し続けます:

11-Jun-2013 15:13:48    Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.codehaus.cargo:cargo-maven2-plugin:1.4.2:redeploy failed: Deployment has failed: Action failed Deploying application to target server failed; Error occurred during deployment: Application with name myapp-1.4.8 is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
11-Jun-2013 15:13:48    
11-Jun-2013 15:13:48            at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
11-Jun-2013 15:13:48            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
11-Jun-2013 15:13:48            ... 19 more
11-Jun-2013 15:13:48    Caused by: org.codehaus.cargo.util.CargoException: Deployment has failed: Action failed Deploying application to target server failed; Error occurred during deployment: Application with name myapp-1.4.8 is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
11-Jun-2013 15:13:48    
11-Jun-2013 15:13:48            at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.waitForProgressObject(AbstractJsr88Deployer.java:285)
11-Jun-2013 15:13:48            at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.deploy(AbstractJsr88Deployer.java:123)
11-Jun-2013 15:13:48            at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.redeploy(AbstractJsr88Deployer.java:207)
11-Jun-2013 15:13:48            at org.codehaus.cargo.maven2.DeployerRedeployMojo.performDeployerActionOnSingleDeployable(DeployerRedeployMojo.java:50)
11-Jun-2013 15:13:48            at org.codehaus.cargo.maven2.AbstractDeployerMojo.performDeployerActionOnAllDeployables(AbstractDeployerMojo.java:180)
11-Jun-2013 15:13:48            at org.codehaus.cargo.maven2.AbstractDeployerMojo.doExecute(AbstractDeployerMojo.java:97)
11-Jun-2013 15:13:48            at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:432)
11-Jun-2013 15:13:48            at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
11-Jun-2013 15:13:48            ... 20 more
11-Jun-2013 15:13:48    [ERROR] 
11-Jun-2013 15:13:48    [ERROR] 
11-Jun-2013 15:13:48    [ERROR] For more information about the errors and possible solutions, please read the following articles:
11-Jun-2013 15:13:48    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
11-Jun-2013 15:13:48    [ERROR] 
11-Jun-2013 15:13:48    [ERROR] After correcting the problems, you can resume the build with the command

私が必要としているのは、そのコンテキスト ルートにアプリケーション (古いバージョン) が既に存在するという事実に関係なく、カーゴ プラグインが再デプロイを強制することです。

asadmin コマンドを手動で実行していた場合、 --force パラメーターを簡単に追加でき、機能します。

追加の制約があります。Bamboo インスタンスをホストするサーバーに Glassfish のローカル バージョンをインストールできないため、maven sh プラグインなどを使用して asadmin コマンドを手動でビルドすることはできません。

以下は、関連する pom.xml フラグメントです。

<build>
        <finalName>myapp-${project.version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <version>1.4.2</version>
                <configuration>
                    <container>
                        <containerId>glassfish3x</containerId>
                        <type>remote</type>
                    </container>
                    <configuration>
                        <type>runtime</type>
                        <properties>
                            <cargo.remote.username>${cargo.remote.username}</cargo.remote.username>
                            <cargo.remote.password>${cargo.remote.password}</cargo.remote.password>
                            <cargo.glassfish.admin.port>${cargo.glassfish.admin.port}</cargo.glassfish.admin.port>
                            <cargo.hostname>${cargo.hostname}</cargo.hostname>
                        </properties>
                    </configuration>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.glassfish.deployment</groupId>
                        <artifactId>deployment-client</artifactId>
                        <version>3.1.1</version>

                    </dependency>
                </dependencies>
            </plugin>

何か案は?

4

4 に答える 4

4

同じ問題がありました。次のようにランタイム引数を追加するだけで、Marlon からの提案を使用して解決しました。

          ...
          <configuration>
            <type>runtime</type>
            <properties>
              <cargo.runtime.args>force=true</cargo.runtime.args>
              <cargo.hostname>${hostname}</cargo.hostname>
              <cargo.remote.username>${username}</cargo.remote.username>
              <cargo.remote.password>${password}</cargo.remote.password>
            </properties>
          </configuration>
          ...

どうやら貨物は再デプロイではなくデプロイを行います。

于 2013-10-25T16:14:05.997 に答える
3

アプリケーションのデプロイとバージョン管理の方法を少し変更し、glassfish のアプリケーション バージョン管理システムを使用することで、最終的にこれを達成する方法を見つけました。以下は、これを達成する方法を示すために私が書いた小さなブログ投稿へのリンクです。

ブログ投稿 - cargo plugin を使ってリモートのグラスフィッシュにデプロイする

于 2013-07-04T20:39:43.560 に答える
1

私にとってうまくいく他の方法は、maven-glassfish-pluginを使用することでした。プラグインを正しく構成し、pom を再デプロイの実行として残しました。

    <execution>
            <id>gf-deploy</id>
            <phase>package</phase>
            <goals>
                <goal>redeploy</goal>
            </goals>
        </execution>

次に、asadmin.bat ファイルを変更し、スクリプトが appserver-cli.jar ファイルを呼び出している行の後にいくつかの行を追加しました。redeploy が undeploy コマンドと deploy コマンドを呼び出すことに注意してください。ここでの maven glassfish プラグインのトリックは print です。 undeploy コマンドが実行されると何かが発生します (Tihs は、undeploy コマンドが常に成功したかのように Maven プラグインを混乱させます)、asadmin コマンドが deploy されると、フローは正常に実行されます。

:run
if NOT %1 == undeploy goto :end
%JAVA% -jar "%~dp0..\lib\client\appserver-cli.jar" %*
ECHO "TEST"
:end

if %1 == undeploy goto :end1
%JAVA% -jar "%~dp0..\lib\client\appserver-cli.jar" %*
:end1

この変更を行った後、リプロイは常に非常にうまく機能しています!

于 2015-01-18T03:04:21.733 に答える
0

管理領域で新しい Glassfish サーバー管理者ユーザーを設定する必要がある場合があります。次のhttp://beforeuquit.blogspot.com/をチェックしてください。

于 2013-12-23T13:20:47.870 に答える