8

多くの Maven 依存関係を使用する大規模な webapp があります。それらは JAR ファイルとして含まれていますが、Eclipse で直接開かれたプロジェクトとしてそれらのいくつかを使用する機会が欲しいです。次に、依存プロジェクトが m2e でリンクされます。

その JAR/プロジェクトの一部から、リソースを抽出する必要があります。

Maven-dependency-plugin でそれを行うにはどうすればよいですか? アーティファクトが JAR として含まれている場合は、それを解凍し、必要なディレクトリにファイルをコピーします。アーティファクトがプロジェクトとして含まれている場合、アーティファクトはハード ドライブ上に存在し、解凍せずにファイルに直接アクセスしてコピーできます。

4

1 に答える 1

21

m2e-plugin は、maven 依存関係プラグインを実行することも、ソースを単独でコピーすることもできません。

maven 依存関係プラグインを使用して、jar からファイルを抽出できます。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>yourSourceGroup</groupId>
                                <artifactId>yourSourceArtifact</artifactId>
                                <version>1.0.0</version>
                                <type>jar</type>
                                <includes>path/to/Files.whatsoever</includes>
                                <outputDirectory>${project.build.directory}/your/target/folder</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

(必要に応じてフェーズまたは目標を変更する必要がある場合があります。)

プロジェクトで「右クリック->実行-> Mavenインストール」をEclipse内から実行して、必要な場所にファイルをコピーできます。

これらすべての代替手段として、webapp でリソース フィルターを使用して、Spring フレームワークなどの実行時に jar から直接リソースを取得できます。

于 2013-09-16T11:58:29.753 に答える