2

私は現在のプロジェクトにMavenを使用しています。今、私は戦争依存関係を持っています:

<dependency>
   <groupId>org.dojotoolkit</groupId>
   <artifactId>dojo-war</artifactId>
   <version>1.8.1</version>
   <type>war</type>
   <scope>runtime</scope>
</dependency>

ウォーアーティファクトを作成したときは問題ありません。このために、私はこのプラグインを追加しました:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <configuration>
            <overlays>
                <overlay>
                    <groupId>org.dojotoolkit</groupId>
                    <artifactId>dojo-war</artifactId>
                    <targetPath>js/dojo-1.8.1</targetPath>
                    <excludes>
                        <exclude>WEB-INF/**</exclude>
                        <exclude>META-INF/**</exclude>
                    </excludes>
                </overlay>
            </overlays>
        </configuration>
    </plugin>

しかし、次のmvnコマンドを実行すると、mvn tomcat7:runjavascriptリソースが表示されません。戦争依存関係が追加されていないようです。

誰かがそれを手伝ってくれませんか?

前もって感謝します。

4

1 に答える 1

0

スタック オーバーフロー エメレンデスへようこそ。

この投稿を読む必要があります: http://webtide.intario.com/2008/07/dojo-toolkit-maven-repository/

実際、dojo-war の依存関係により、いくつかのファイルをソースに追加できますが、それを最終的な war に含めるには、いくつかの追加アクションを指定する必要があります。

依存関係は、Maven では、コンパイルしようとしている言語にしか存在できません (実際には正確ではありませんが、ここではこれで十分です)。zip/war/targz に含まれる他のリソース (ファイル、画像、javascript) を追加する場合は、それらを明示的に抽出する必要があります。これは、以前に提供したリンクで言及されているものです。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack dojo</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>org.dojotoolkit</groupId>
                        <artifactId>dojo</artifactId>
                        <version>${project.version}</version>
                        <type>zip</type>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>${project.build.directory}/dojo</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

(注意してください。この構成が正確かどうかはわかりません。依存関係は、pom.xmlによるとdojo-warのようであり、ドキュメントによるとdojoではないようです)

これにより、dojo ライブラリが出力ディレクトリに抽出され、次に war に抽出されます。

于 2013-03-25T13:03:57.417 に答える