14

src/main/webappプロジェクトのディレクトリにCSSファイルとJavaScriptファイルがあります。参加したいのですが、これらのリソースの参加および縮小バージョンをWARファイルとそれを取得する場所に追加しますtomcat-maven-plugin

yuicompressor-maven-pluginを使用してファイルを作成し、に配置しました${project.build.directory}/${project.build.finalName}。これはMavenパッケージに最適であり、それらのリソースは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生成されたファイルも取得するにはどうすればよい ですか?

4

3 に答える 3

5

使用warSourceDirectory:

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

のこの構成プロパティ ( warDirectory) の代わりにtomcat-maven-plugin:

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

tomcat-maven-plugin documentationによるとwarSourceDirectory、Web リソースが取得される場所であり、そのデフォルト値は${basedir}/src/main/webappです。これは、そのプロパティを設定しない場合は、統合/縮小された JavaScript ファイルを の下に生成する必要があることを意味します${basedir}/src/main/webapp

出力フォルダーに設定warSourceDirectoryする場合、Tomcat を開始する前にこのファイルを生成する必要があることを意味します。

于 2012-09-24T19:25:31.133 に答える
3

または、の代わりにrun-warゴールを使用することもできます。これは、ビルドディレクトリ(したがってフィルタリングされたリソース)で展開された戦争を使用します。このサイトを参照してください。パッケージングフェーズをスキップするものもあります。runmvn tomcat6:run-warrun-war-only

于 2013-03-12T10:53:44.113 に答える
1

プラグインは現在Apacheで維持されていることに注意してください(少しアップグレードしてください:-))http://tomcat.apache.org/maven-plugin-2.0/を参照してください。

install を使用しても機能しますが、それが最適なソリューションであるかどうかはわかりません(ioとビルド時間に関して)。

tomcat の実行では、複数のディレクトリからリソースを使用できる必要があります (現在の tomcat 組み込み API で可能かどうかはわかりません)。

ここに機能リクエストを追加できますかhttps://issues.apache.org/jira/browse/MTOMCAT

ありがとう

于 2012-09-25T15:28:24.703 に答える