Maven:在哪里为tomcat-maven-plugin添加生成的资源?

我的项目的src/main/webapp目录中有CSS和JavaScript文件。 我想加入这些资源的加入和缩小版本到我的WAR文件和tomcat-maven-plugin选择它的地方。

我使用yuicompressor-maven-plugin创建文件并将其放到${project.build.directory}/${project.build.finalName} 。 它适用于maven包,这些资源可以用于WAR文件,但不知何故tomcat-maven-plugin根本看不到它们。 我应该使用不同的目录吗?

我的pom:

    org.codehaus.mojo tomcat-maven-plugin 1.1  /MyApp ${project.build.directory}/${project.build.finalName}    2.5.1 true org.apache.maven.plugins maven-compiler-plugin  1.6 1.6 true true    org.apache.maven.plugins maven-resources-plugin 2.5  UTF-8    org.apache.maven.plugins maven-war-plugin 2.2    ${basedir}/src/main/resources/META-INF true META-INF  context.xml     false  true true      net.alchim31.maven yuicompressor-maven-plugin 1.3.0   process-resources   **/*    ${project.build.directory}/${project.build.finalName}/js/commons-pack.js  ${project.build.sourceDirectory}/../webapp/js1.js ${project.build.sourceDirectory}/../webapp/js2.js ... 

我该怎么做才能制作mvn tomcat:run以获取我生成的文件?

使用warSourceDirectory

 ${project.build.directory}/${project.build.finalName} 

而不是tomcat-maven-plugin配置属性( warDirectory ):

 ${project.build.directory}/${project.build.finalName} 

根据tomcat-maven-plugin文档 , warSourceDirectory是获取Web资源的地方,其默认值为${basedir}/src/main/webapp 。 这意味着如果您不设置该属性,则需要在${basedir}/src/main/webapp下生成统一/缩小的JavaScript文件。

如果将warSourceDirectory设置为输出文件夹,则表示您需要在启动Tomcat之前生成此文件。

或者,您也可以使用run-war目标而不是run ,例如mvn tomcat6:run-war 。 这将使用构建目录中的爆炸战争(以及过滤后的资源)。 看到这个网站 。 还有run-war-only的包装阶段。

注意插件现在在Apache上维护(所以升级了一下:-))请参阅http://tomcat.apache.org/maven-plugin-2.0/ 。

即使它使用安装我也不确定它是最佳解决方案(关于io和构建时间)。

tomcat运行必须能够使用来自多个目录的资源(我不确定它是否可以使用当前的tomcat embeded api)。

您可以在此处添加function请求https://issues.apache.org/jira/browse/MTOMCAT

谢谢