build
現在、2 番目のリソースの場所のディレクトリを指定する次の部分を含むサンプル Maven プロジェクトがあります。
<project>
...
<build>
<resources>
<resource>
<directory>src/main/second-resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>${artifactId}</finalName>
<outputDirectory>${jarBuildPath}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
この構成で jar をパッケージ化して、クラスとリソース ファイルを適切な場所に問題なく配置できます。
しかし、値src/main/java<classesDirectory>
を使用してmaven-jar-plugin構成スニペットにプロパティを追加すると、次のようになります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<classesDirectory>src/main/java</classesDirectory>
<finalName>${artifactId}</finalName>
<outputDirectory>${jarBuildPath}</outputDirectory>
</configuration>
</plugin>
次に、アーカイブをパッケージ化すると、地獄、私のリソースファイルはもうありません.
classesDirectory プロパティの Maven 公式ドキュメントから、JAR にパッケージ化する必要があるクラスとリソース ファイルを含むディレクトリであることがわかります。そして、それは私にとってすべての意味があり、maven はsrc/main/javaの下にない限り、パッケージ化する権利を持たないファイルを想定しているため、私のリソースファイルが消えるのはかなり公平です。
しかし、リソース ファイルの場所を (以下のオプションのいずれかを使用して) 指定するときに、Maven は、<classesDirectory>
エントリを指定した場合でも、ファイルの場所を認識します。
最上位<resources>
エントリあり
<resources>
<resource>
<directory>src/main/second-resources</directory>
</resource>
</resources>
またはmaven-resource-plugin経由
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<resources>
<resource>
<directory>src/main/second-resources</directory>
</resource>
</resources>
</configuration>
</plugin>
私はmavenに精通していると言えますが、この問題は私にとって奇妙に思えました.カスタムリソースディレクトリがある場合、maven-jar-pluginに含めることはお勧めできませんか?
誰でも親切にこれに光を当てることができますか?
BR。