Maven的:如果把生成的资源,Tomcat的Maven的插件?(Maven: Where to p

2019-07-31 21:07发布

我在CSS和JavaScript文件src/main/webapp我的项目目录。 我想加入这些资源的附加加盟和精缩版,我的WAR文件,并到地方tomcat-maven-plugin捡起来。

我用的YUICompressor-Maven的插件创建的文件和它放到${project.build.directory}/${project.build.finalName} 。 它的伟大工程的行家包,这些资源使他们以WAR文件的方式,但不知何故, tomcat-maven-plugin没有看到那些在所有。 我应该使用不同的目录呢?

我的POM:

    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <path>/MyApp</path>
                <warDirectory>${project.build.directory}/${project.build.finalName}</warDirectory>
            </configuration>
        </plugin>
        <plugin>
            <version>2.5.1</version>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <optimize>true</optimize>
                <debug>true</debug>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${basedir}/src/main/resources/META-INF</directory>
                        <filtering>true</filtering>
                        <targetPath>META-INF</targetPath>
                        <includes>
                            <include>context.xml</include>
                        </includes>
                    </resource>
                </webResources>
                <archive>
                    <addMavenDescriptor>false</addMavenDescriptor>
                    <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.3.0</version>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <configuration>
                        <excludes>
                            <exclude>**/*</exclude>
                        </excludes>
                        <aggregations>
                            <aggregation>
                                <output>${project.build.directory}/${project.build.finalName}/js/commons-pack.js</output>
                                <includes>
                                    <include>${project.build.sourceDirectory}/../webapp/js1.js</include>
                                    <include>${project.build.sourceDirectory}/../webapp/js2.js</include>
                     ...

我应该怎么做才能让mvn tomcat:run也拿起我生成的文件?

Answer 1:

使用warSourceDirectory

<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>

替代此配置属性(的warDirectory )为tomcat-maven-plugin

<warDirectory>${project.build.directory}/${project.build.finalName}</warDirectory>

按照Tomcat的Maven的插件文件 , warSourceDirectory是在网络资源得到回升,而它的默认值是${basedir}/src/main/webapp 。 这意味着,如果你不设置该属性,你需要生成你的下统一/精缩的JavaScript文件${basedir}/src/main/webapp

如果设置warSourceDirectory到输出文件夹,这意味着你需要启动Tomcat之前生成此文件。



Answer 2:

另外,您还可以使用run-war的目标,而不是run ,如mvn tomcat6:run-war 。 这港岛线使用你的build目录爆炸战争(从而过滤资源)。 请参阅本网站 。 另外也run-war-only其中跳过打包阶段。



Answer 3:

注意该插件目前维持在阿帕奇(所以升级一点:-))看到http://tomcat.apache.org/maven-plugin-2.0/ 。

即使它的工作原理利用安装我不知道它是最佳的解决方案(关于IO和建造时间)。

Tomcat的运行必须能够使用的资源从多个目录(我不知道这是可能与当前的Tomcat的嵌入式API)。

你可以在这里添加功能请求https://issues.apache.org/jira/browse/MTOMCAT

谢谢



文章来源: Maven: Where to put generated resources for tomcat-maven-plugin?