複数のプロジェクトにまたがってのリソース(特にFlywayデータベース移行スクリプト)を共有したいと思っています。Mavenの 'インポート'リソースの依存関係はありますか?
これらの共有リソースをMavenアーティファクトとして存在させることは可能ですか?Mavenがその依存関係を解決し、アーティファクトの内容を/src/main/resources/
に解凍する前に、もしそうなら、これについてどうすればよいでしょうか?
複数のプロジェクトにまたがってのリソース(特にFlywayデータベース移行スクリプト)を共有したいと思っています。Mavenの 'インポート'リソースの依存関係はありますか?
これらの共有リソースをMavenアーティファクトとして存在させることは可能ですか?Mavenがその依存関係を解決し、アーティファクトの内容を/src/main/resources/
に解凍する前に、もしそうなら、これについてどうすればよいでしょうか?
/src/main/resources
にファイルを配置すると、ターゲットJAR成果物のCLASSPATHに配置されます。つまり、そのようなアーティファクトに依存する場合は、そのクラスにアクセスできるように、すべてのリソースにアクセスできます。
<dependency>
<groupId>com.example.foo</groupId>
<artifactId>my-resources</artifactId>
<version>0.1</version>
</dependency>
my-resources
アーティファクトは/src/main/resources
でいくつかのリソースが含まれている場合は、同じ案件から/src/main/resources
コンテンツにアクセスすることができ、ちょうどあなた(または他のライブラリ)のように実行でそれらをアクセスすることができます。
surefire
現在の成果物の実行中にテストリソースがCLASSPATHに置かれるだけなので、これは/src/test/resources
とは動作しません。
ありがとうございます!依存関係のスコープが 'test'の場合は'/src/test/resources'と同じ働きをしますか? –
@Deejay:いいえ。また、 'test'スコープでインポートした場合でも'/src/test/java'からクラスをインポートすることはできません。 –
'test' artitactの' src/main/resources'にリソースを置くだけです。 – carlspring