短版:
我希望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.xml 中的模块。
现在命令:
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
但出于我的兴趣,部署不应依赖于此类附加信息。
非常感谢你的帮助!