ショートバージョン:
maven-glassfish-plugin
階層型(継承ベース)のMavenマルチプロジェクトセットアップのルートプロジェクトでのみ実行されるようにしたいと思います。
ロングバージョン:
次の設定:
project-root
|
+-pom.xml
|
+ ear-module
| |
| +-pom.xml
|
+ jar-module
|
+-pom.xml
すべてのサブモジュールは経由<modules>...</modules>
でルートプロジェクトに含まれ、すべてのサブモジュールはルートプロジェクトpom.xmlを継承します。私のルートプロジェクトのpomには、次のものが含まれていmaven-glassfish-plugin
ます。
...
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<inherited>false</inherited>
<configuration>
<glassfishDirectory>${glassfish.home}</glassfishDirectory>
<passwordFile>${glassfish.home}/masterpassword.txt</passwordFile>
<domain>
<name>${project.name}</name>
<adminPort>4848</adminPort>
<httpPort>8080</httpPort>
<httpsPort>8443</httpsPort>
<iiopPort>3700</iiopPort>
<jmsPort>7676</jmsPort>
</domain>
<components>
<component>
<name>poc.vermittler</name>
<artifact>${project.basedir}/ear-module/target/ear-project-1.0-SNAPSHOT.ear</artifact>
</component>
</configuration>
</plugin>
...
(注:これは私のpomの単純化されたバージョンです。実行されない場合があります:)
ear-module
モジュールをGlassfish にのみデプロイしたいので、<inherited>false</inherited>
セクションを追加<components>...</components>
し、ルートpomのようにデプロイするモジュールを示します。
今コマンド:
mvn glassfish:deploy
耳をGlassfishにデプロイしますが、これまでのところすべてうまくいきます...しかし、Mavenはすべてのサブモジュールに再帰的に適切になり、すべて失敗します。
No plugin found for prefix 'glassfish' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
オプションを指定してルートプロジェクトのみを実行するようにMavenに指示することはでき-pl
ますが、私の目的では、デプロイはそのような追加情報に依存するべきではありません。
あなたの助けをどうもありがとう!