私のプロジェクトにはいくつかのスキーマがあります。mvn deploy コマンドを実行しているとき。スキーマを集中型サーバーにコピーしています。
スキーマ変更の単体テストでは、最初にそれをサーバーにアップロードする必要があり、それからプロジェクトで使用できます。ローカルでもスキーマをセットアップした後、mvn deploy コマンドを実行してローカル サーバーにアップロードする必要があります。これは、既存の pom にインストール フェーズの構成がなかったためです。
そのために、インストール フェーズで同様のコピー実行を記述しました。以下は、プラグイン構成のスナップショットです。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>xsd-publish</id>
<phase>deploy</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${xsd.publish.location}\event</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xsd</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
<execution>
<id>copy-xsd-local</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>\\localhost\xsd\event</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xsd</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
この構成をローカル マシンで実行すると、正常に動作し、期待どおりに動作します。TeamCity を使用してプロジェクトをビルドしようとすると、チームシティには独自の servr があり、xsd という名前のフォルダーがないため、失敗しました。そして理想的には、Team city から実行しているときに、このプラグインの実行を呼び出したくありません。
なにか提案を?