2017-05-01 12 views
0

私はリソースを持つjarファイルを生成する "impl"とサーバ実装のwarを生成する "server"という2つのモジュールを持つmavenプロジェクトに取り組んでいます。モジュール間でリソースを共有するためのMavenの設定

implementation 
    | 
    |-impl 
    | |-src 
    | | |-main 
    | |  |-resources 
    | |-pom.xml 
    | 
    |-server 
    | |-src 
    | | |-main 
    | |  |-java 
    | | |-test 
    | |  |-java 
    | |-pom.xml 
    | 
    |-pom.xml 

私はビルドを作成しようとすると、現在、独自の実装のjarファイルは、サーバーのwarファイルのWEB-INF/libディレクトリに含まれているサーバーのwarファイルが生成された後、それが解凍され、それに基づい中であるので、すべてのテストが実行されており、すべて正常に動作します。

必要条件として、私は戦争とファイルを分離しなければなりません。なぜなら、warファイルにはimplのjarファイルは含まれず、warはtomcatのlibディレクトリにjarファイルを置くだけです。

私はサーバーのpom.xmlファイルでそれを実行しようとしましたが、implモジュールを指定したスコープに設定しましたので、jarファイルはwarには含まれていませんでしたが、使用されたwarファイルを解凍したテストを実行するために必要なimpl jarファイルは含まれていません。 サーバのwarファイルをアンパックしてテストがうまく動作するようにするか、またはimplのjarファイルをサーバのWEB-INF/libディレクトリにあるように動作させるように設定するために、implのjarファイルをWEB-INF/libディレクトリにコピーできますかテストを実行しているとき、または私の問題の解決策が他にありますか?

+0

このjarファイルに ' test'を使用すると、テストクラスパス上にあることを意味します...戦争などにパッケージ化されていないことを意味します。なぜあなたがwarファイルを解凍する必要があるのですか?ランニングテスト?どのようなテストですか? – khmarbaise

答えて

0

jarの有効範囲をprovidedと指定する必要はありません。あなたの戦争の通常の依存としてそれを含めるだけですpom.xml
代わりにMaven War Pluginを設定すると、warファイルのファイル(jarファイルを含む)をから除外できます。
<packagingIncludes>構成パラメータを使用する必要があります。 以下のサンプルコードを参照してください。

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>3.1.0</version> 
     <configuration> 
      <packagingExcludes>WEB-INF/lib/your_jar_name.jar</packagingExcludes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

詳細情報については、このlinkを確認することができます。

関連する問題