2012-02-16 20 views
5

複数のプロジェクトにまたがってのリソース(特にFlywayデータベース移行スクリプト)を共有したいと思っています。Mavenの 'インポート'リソースの依存関係はありますか?

これらの共有リソースをMavenアーティファクトとして存在させることは可能ですか?Mavenがその依存関係を解決し、アーティファクトの内容を/src/main/resources/に解凍する前に、もしそうなら、これについてどうすればよいでしょうか?

答えて

7

/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とは動作しません。

+0

ありがとうございます!依存関係のスコープが 'test'の場合は'/src/test/resources'と同じ働きをしますか? –

+0

@Deejay:いいえ。また、 'test'スコープでインポートした場合でも'/src/test/java'からクラスをインポートすることはできません。 –

+0

'test' artitactの' src/main/resources'にリソースを置くだけです。 – carlspring

関連する問題