[英]How to 'mvn jetty:run' from a parent pom?
我有一个包含多个.war软件包的多模块项目。 我希望能够在父pom上“ mvn jetty:run”,并将每个子模块的.wars部署在同一嵌入式码头实例上。
我能够从每个子模块成功运行'mvn jetty:run',但是当我在父pom上运行它时,它会失败并跳过子模块。
尝试从父pom运行'mvn jetty:run'结果如下:
[错误]无法在项目FlashCards_App上执行目标org.mortbay.jetty:maven-jetty-plugin:6.1.16:run default-cli):Webapp源目录C:\\ dev \\ sour ce_code \\ FlashCards_App \\ src \\ main \\ webapp不存在-> [帮助1]
的确,父pom上没有webapp目录。
这是我的pom摘录。 完整的文件可以在这里找到 。
<modules>
<module>FlashCards_Domain</module>
<module>FlashCards_GWT</module>
<module>FlashCards_Service</module>
<module>FlashCards_Service_SpringData</module>
<module>FlashCards_Service_Jpa</module>
<module>FlashCards_WebServices</module>
<module>FlashCards_Struts</module>
<module>FlashCards_Test</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jetty.version}</version>
</plugin>
</plugins>
</build>
这基本上与2009年在这篇帖子中提出的问题相同。 已经有几年了,我想知道现在是否还有其他选择。 上一篇文章提出了两种解决方案(1)使用货运插件和(2)从子模块构建姐妹战争。
最好的选择可能是配置jetty插件以运行多个webapp 。 我不确定它是否可以在您的父pom中运行,因此您可能必须将模块中的某个用作“启动器” webapp,或者在父项目中创建“虚拟webapp”。
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.6.v20141205</version>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<webApp>
<contextPath>/</contextPath>
</webApp>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext">
<war>${project.basedir}/app1/target/app1.war</war>
<contextPath>/app1</contextPath>
</contextHandler>
<contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext">
<war>${project.basedir}/app2/target/app2.war</war>
<contextPath>/app2</contextPath>
</contextHandler>
</contextHandlers>
<stopPort>9999</stopPort>
<stopKey>STOP</stopKey>
</configuration>
</plugin>
cd parent_module
mvn jetty:run -pl sub_module
cd parent_module
mvn jetty:run -pl sub_module
完成@jiahut答案:
$ mvn jetty:run --help
(...)
-am,--also-make If project list is specified, also
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
(...)
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path
来自Apache Archiva的示例:
mvn jetty:run -pl :archiva-webapp -am
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.