我有一个包含多个.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)从子模块构建姐妹战争。

===============>>#1 票数:2 已采纳

最好的选择可能是配置jetty插件以运行多个webapp 我不确定它是否可以在您的父pom中运行,因此您可能必须将模块中的某个用作“启动器” webapp,或者在父项目中创建“虚拟webapp”。

===============>>#2 票数:2

        <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>

===============>>#3 票数:1

cd parent_module
mvn jetty:run -pl sub_module

===============>>#4 票数:0

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

  ask by Justin translate from so

未解决问题?本站智能推荐: