我对maven及其tomcat7插件有疑问:)
我有以下maven项目:
这三个项目在maven中正确构建,结果正常:
现在,我需要提供包含特定插件设置的webapp的不同包装。 即我想用webapp + plugin1生成一个war文件,另一个用webapp + pugin2生成
为实现这一目标,我创建了2个额外的maven项目,这些项目在webapp项目上声明了依赖项+相应的插件项目,并打包为战争。 生成的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>
谢谢!
注意:很长一段时间潜伏,第一次问问这里,如果遗失了一些信息告诉我:)答案 0 :(得分:0)
根据项目的结构,添加war类型的依赖项可能不够。您可能还需要按照maven-war-plugin中的说明配置<overlays>
。
看起来您的最终战争并未提供您期望的完整Web配置。使用overlays
,您可以配置依赖项中的资源如何打包到最终的Web应用程序中。
与tomcat7插件相比,外部tomcat启动应用程序的方式必须有所不同。也许你可以尝试-X选项:
mvn -X tomcat7:run
这应该注明嵌入式tomcat正在配置的一些细节。