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