Maven-resources-pluginを使用して、copy-resourcesゴールを使用したフィルタリングを実行しようとすると、次のエラーが発生しました。
Failed to execute goal org.Apache.maven.plugins:maven-resources-plugin:2.5:copy-resources (default-cli) on project bar: The parameters 'resources', 'outputDirectory' for goal org.Apache.maven.plugins:maven-resources-plugin:2.5:copy-resources are missing or invalid
問題を特定するために、非常に単純なpom.xmlを作成し、 http://maven.Apache.org/plugins/maven-resources-plugin/examples/copy-resources.html からほとんど逐語的にコピーしました=、それを実行し、同じエラーが発生しました。
私はそれを呼び出しています
mvn resources:copy-resources
何か案は?これがテストpom.xmlです。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
あなたが持っていた主な問題は、あなたが直接使用してプラグインの目標を呼び出しているということです
mvn resources:copy-resources
これは必ずしも出力ディレクトリを作成するわけではありません。代わりに、正しいMavenライフサイクルフェーズを呼び出します。
mvn process-resources
ライフサイクルフェーズの完全なリストについては、何もせずにmvnコマンドを実行してください。
一般に、すべての前提条件が満たされることが保証されるため(たとえば、テストするクラスの前にテストクラスをコンパイルできないなど)、目標よりもライフサイクルフェーズを直接呼び出す方がほとんど常に優れています。
@bmarguliesの回答が機能するかどうかを確認します。 これらの例 を参照できます。
いずれの場合も、これを実現するために<pluginManagement>
を使用する必要はありません。 <pluginManagement>
は、マルチモジュールシナリオでplugin
構成の継承を容易にするために使用されます。
configuration
要素からexecution
を移動する必要があります。次のスニペットが機能します。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
実行とその構成を削除するだけです。通常は、_<build> > <resources>
_でリソースをそれぞれ定義することをお勧めします_<build> > <testResources>
_( http://maven.Apache.org/plugins/maven-resources-plugin/examples/resource-directory.htmlを参照) )デフォルトのライフサイクルprocess-(test-)resources
を使用してプラグイン構成内に直接ない。これはcopy-(test-)resources.
によって自動的にフックされる。はい、それは彼らのページの悪い例です!