我对maven及其tomcat7插件有疑问:)

我有以下Maven项目:


plugin1:打包为jar的纯Java项目
plugin2:打包为jar的纯Java项目
webapp:打包为jar的独立webapp项目


这三个项目均已在maven中正确构建,并且效果很好:


我可以使用plugin1 / plugin2中的jar
我可以将webapp war文件部署到Web容器
我可以运行tomcat7:run来启动webapp


现在,我需要提供包含特定插件设置的webapp的不同包装。
即我想使用webapp + plugin1生成一个战争文件,并使用webapp + pugin2生成另一个文件

为此,我创建了2个附加的Maven项目,这些项目声明了webapp项目和相应插件项目的依赖关系,并打包为wars。
生成的war文件具有预期的内容,并且可以部署到tomcat,但是当我尝试使用maven tomcat插件(tomcat7:再次运行)时,它根本不会启动任何内容。

尽管这并不妨碍我(我的主要目的是生成战争文件),但我还是觉得自己错过了一些东西。

这些聚合项目的pom.xml看起来像这样(请注意,那些项目中绝对没有代码,这些代码只是为打包而创建的,具有特定的依赖关系)。

<groupId>my.project</groupId>
<artifactId>live1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>MyWebapp</name>

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

<dependencies>
    <dependency>
        <groupId>my.project</groupId>
        <artifactId>plugin1</artifactId>
        <version>${project.version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>my.project</groupId>
        <artifactId>webapp</artifactId>
        <version>${project.version}</version>
        <type>war</type>
        <scope>runtime</scope>
    </dependency>
</dependencies>

<build>
    <finalName>MyWebapp</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <url>http://localhost:8080/manager</url>
                <server>localhost</server>
                <path>/${project.build.finalName}</path>
            </configuration>
        </plugin>
    </plugins>
</build>


谢谢 !

注意:长期潜伏者,第一次进入这里,如果缺少某些信息,请告诉我:)

最佳答案

根据项目的结构,仅添加类型war的依赖项可能并不足够。您可能还需要按maven-war-plugin所述配置<overlays>
您的最终战争似乎无法提供您期望的完整Web配置。使用overlays,您可以配置如何将依赖项中的资源打包到最终的Web应用程序中。

与tomcat7插件相比,外部tomcat启动应用程序的方式必须有所不同。也许您可以尝试-X选项:

mvn -X tomcat7:run


这应该注销一些有关嵌入式tomcat正在配置的细节。

关于java - Maven Tomcat7进行依赖 war ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36204231/

10-14 11:14