2009-03-11 10 views
4

私はマルチモジュールのMavenプロジェクトを持っています。 デフォルトでは、Webモジュールをビルドすると、それが依存するJAR型のすべての兄弟モジュールがWEB-INF/libフォルダにコピーされます。私は、兄弟モジュールの出力をWEB-INF/classesフォルダにJARへのパッケージングなしで配置したい。マルチモジュールWebプロジェクトのMaven:兄弟モジュールをWEB-INF/classesに出力する方法と、WEB-INF/libをJARとして出力する方法はありますか?

もっと一般的な質問は、兄弟モジュールの設定ファイルをJARから外して、簡単に配備後に編集できるようにすることです。

答えて

1

overlayを使用できますが、兄弟はjarではなくwar型である必要があります。また、依存プラグインを使用してjarファイルを解凍しますが、パッケージ化されたものではなく、ローカルリポジトリ内のバージョンのみをアンパックします。

「より一般的な」質問には、jarプラグインのexcludesタグがあります。

2

誰かが興味がある場合は、この解決策を見つけました。私は全く同じ問題を抱えていた。

  <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <configuration> 
         <packagingExcludes>WEB-INF/lib/MYPACKAGE_TO_EXCLUDE.jar</packagingExcludes> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>unpack-MYPACKAGE_TO_EXCLUDE</id> 
          <phase>compile</phase> 
          <goals> 
           <goal>unpack</goal> 
          </goals> 
          <configuration> 
           <artifactItems> 
            <artifactItem> 
             <groupId>${project.groupId}</groupId> 
             <artifactId>MYPACKAGE_TO_EXCLUDE</artifactId> 
             <version>${project.version}</version> 
             <type>jar</type> 
             <outputDirectory>${project.build.directory}/classes 
           </outputDirectory> 
            </artifactItem> 
           </artifactItems> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
+0

これは私がそれを行っていた方法ですが、他の人が言ったことを覚えている:「それは、あなたのローカルリポジトリ内のバージョンを解凍します、ではないあなただけのパッケージ1」 –

+0

@Seanパトリック・フロイドはい、しかし、 mvn installを使って親の中で完全に再構築すると、MYPACKAGEがビルドされ、まずローカルリポジトリにコピーされ、次にこのプロジェクトがビルドされます。または、2番目のプロジェクトのビルドがMYPACKAGEのレポへのアップロードに先立っているとお考えですか? –

+0

あなたは私のヒーローです。あなたのソリューションを投稿する時間をとってくれてありがとう。 –

関連する問題