2017-10-24 9 views
0

JBossとWildFlyからのBOMの使用に関する一般的な質問があります。 JBoss 7とWildFly 10の両方で異なるプロファイルを使用してプロジェクトを構築する方法はありますか?プロファイル内の異なるJBoss BOMの使用

私はこのようなプロファイルにWildFlyからBOM定義をコピーしようとした:もちろん

<profile> 
    <id>WildFly10</id> 
    <dependencyManagement> 
     <dependencies>   
      <dependency> 
       <groupId>org.wildfly.bom</groupId> 
       <artifactId>wildfly-javaee7-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
      <!-- JSON --> 
      <dependency> 
       <groupId>org.json</groupId> 
       <artifactId>json</artifactId> 
       <version>${version.json}</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 
</profile> 

をaccourdingly JBoss7プロファイルに。

しかし、この方法ではlibフォルダに重要なライブラリが追加されません。つまり、この定義はear pomにあり、サブプロジェクト(war)はjson依存関係を追加します。プロファイルがなければ、mavenはlibフォルダの中にjson jarを追加しますが、プロファイル内にjson jarを追加しないとします。

私はプロファイルに依存関係を変更してアンチパターン[1]私はJBoss7とWildFly 10の両方のための私のプロジェクトをビルドする方法を

を知りたいのですがされていることを読んだ後の更新

このクイックショットの質問を申し訳ありません。ここに詳細があります。

プロジェクト構造:

|-parent (pom) 
    |- myapp (war) 
    |- core (jar) 
    |- deployment (ear) 

のでdeploymentはライブラリとしてウェブapllicationとしてmyappcoreを含む耳全体を構築するプロジェクトです。 myappは、coreおよびcorejsonに依存します。

正しいバージョンで必要なすべての依存関係を持つために、私はwildfly-javaee7-with-toolsをdependencyManagmentに含めました。そこにはjsonのバージョンも定義されています。 coreプロジェクトには通常の依存関係としてjsonライブラリがあります。

これは非常に標準的なはずです。しかし、事は、私はもちろん${version.jboss.bom}

  <dependency> 
       <groupId>org.jboss.bom</groupId> 
       <artifactId>jboss-javaee-6.0-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 

  <dependency> 
       <groupId>org.wildfly.bom</groupId> 
       <artifactId>wildfly-javaee7-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 

を変更する必要が何のためには、JBoss 7とWildFly 10用にビルドできるようにしたいされWildFlyのため10.1.0.Finalから変更されますJBossの場合は1.0.7.Finalです。

そうするために、wildfly-javaee7-with-toolsをプロファイルに移動しようとしました。私の最初の推測は、この依存関係をプロファイルに移動することだけでした。しかし、json jarは含まれません。その後も、上記のようにjsonを移動しようとしました。

+0

申し訳ありませんが、トピックから、あなたはおそらくこのものをリンクすることができますか?_changing dependencieは、プロファイルでanti-pattern_ですか?そして、おそらく非プロフィールのpomから関連する部分を含む質問に編集するか、それともそのpom/importの依存関係ですか? – pirho

+0

"プロファイルがなければ、mavenはlibフォルダの中にjson jarを追加します" - このためにpomを表示できますか? – SilverNak

+0

実際にこのポンでは特別なことは何もありません。それはちょうどいくつかの依存関係を持っています。それらの1つは、JSON依存関係を持つ別のサブプロジェクト(jar)です。プロファイルがまったくない場合、JSON jarが追加されますが、プロファイルにラップするだけでJSON jarファイルはインクルードされません。 –

答えて

0

オリジナルのプロファイルされていないプロファイルされたpomを完全に見ることなく、何か正確ではなく推測された推測をすることはできません。

プロファイル依存関係管理にはjsonがあります。

pomにもバージョンがない主な依存関係はありますか?そうでなければ、libにもpackedにもコピーされません。プロファイルによってのみ管理されます。

jsonはプロファイルごとに管理する必要がありますか? ${version.json}のように見えますが、この例ではコピーされていると、プロファイルごとに同じになります。

私の場合、プロファイルdependencyManagementからjsonを削除し、それを通常の依存関係としてメイン依存関係に追加することが考えられます。これはプロファイリングをよりシンプルにするためです。 jsonに直接依存します。

関連する問題