2016-04-26 8 views
0

私たちは、次の構造を持っている:私たちは定義されているProtobufメッセージ、また、我々が使用して他の人を定義したいのヘルパークラスと型を持っている私たちの共通API内APIジャー

myRootFolder 
- pom.xml (pom1 - parent pom defining modules) 
-core-app/ 
    - pom.xml 
-core-libs/ 
    - pom.xml (pom2 - defining modules and having pom1 as parent pom) 
    - common-api/ 
    - pom.xml (pom3 - the api with pom2 as parent pom) 
    - other-lib/ 
    - pom.xml 

を。

common-api.jarを顧客に提供する場合、それらを自分のMavenサーバーに再デプロイするために、2つの親ポーム(pom2とpom1)も必要です。

私たちは、必要な部分は少なくとも私たちのMavenリポジトリを公開することができますが、残念ながら現時点ではオプションではありません。

common-api.jarを自動的に作成する方法はありますが、そこにはpomに親に対する依存性は含まれていませんが、まだ正しく動作していますか? (親pom内で定義されたバージョンはpomに書き込まれ、親pom(pom1)で定義されたバージョンで置き換えられます(例:${log4j.version})。

答えて

0

はい私は方法がありますが、Mavenビルドを処理する標準的な方法はありません。 あなたはこの中に因数分解活性プロファイルを有する現在のビルドのためのXMLとして有効なPOMを生成
mvn help:effective-pom -Doutput=xxx.xml
を使用することができる。 有効POMがスーパーPOM +アプリケーションPOM(S)+のsettings.xml内容+プラグインで構成されています選択されたパッケージングタイプ(したがって、アプリケーションPOMの1つの要素に基づく)に基づいて、デフォルトでライフサイクルにバインドされます。

こちらがお役に立てば幸いです。

+0

これは正しい方向に進みますが、それはあまりにも多くの最終的なポンドに構成されている... – divadpoc