2017-02-17 15 views
2

私は組織の外でMavenの親を使用する開発者を抱えています。親が働いていると、彼らは長い間、これらの依存性に対してテストしてきた彼らのビルド春ブート・スターター・親Mavenの継承と配布管理

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

であるこの特定のケースでは、私は、理想的には彼らの継承を変更する必要はありません。

私がリリースエンジニアとして持っている問題は、生成されたアーティファクトを内部のMavenリポジトリに保存する必要があることです。歴史的には、すべてのプロジェクトが継承チェーンのルートとして持っていたものを定義するMaven Parentを持つことによってこれを行ってきました。

私は何百ものPOMSを管理することになってしまい、内部のMavenリポジトリを移動する必要があるかのように、それぞれを入れ替える必要はありません。変更を反映するためにばかげた数のプロジェクトを管理する必要があります。

私は本質的に両親への書き込みアクセス権がない場所に設定する方法はありますか?これはMAVEN_OPTSで設定することができますか、CIサーバー上のプロパティファイルで設定できますか? properties-maven-pluginを使用してすべてのプロパティを入力しようとしましたが、distributionManagementはプロパティとして変数を受け入れません。

+0

アーティファクトを構築し、ネクサス(または他のMavenのリポジトリマネージャ)に展開する前に、私は本当にあなたが達成しようとしているのか理解していません。作成するアーティファクトは、NexusやArtifactoryなどのアーティファクトリポジトリに移動する必要があります。通常、ビルドサーバーによってそのリポジトリにデプロイされます。 Nexus/Artifactoryに外部リポジトリをプロキシして、使用済みのすべての親ポームを内部にコピーすることもできます。 –

+0

開発チームは通常、本質的にスーパーPOMのバージョンを定義する親pomを使用します。この場合の開発チームは、 "私たち"の親ではなく、spring-boot-starter-parentを使用しているので、残りのビルドと同じものを継承しません。 Mavenリリースの実行:リリース・リポジトリが見つからない場合(deploymentManagementが設定されていないため)、デプロイが失敗します。私は開発者が社外の(つまり、所有していない)親を組織に公開し、依然として内部のrepoに公開できるようにしたいと考えています – shaunSCM

答えて

0

BOMとしてSpring Boot依存関係を持って、あなたが必要になります(以前に指定したparent要素以外の)あなたの組織親ポンポンを維持:

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-dependencies</artifactId> 
     <version>1.4.1.RELEASE</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 

しかし、私は控えめな方法は、適切に設定するかもしれないと思います使用して、モジュールのバージョンは:

mvn versions:set

+0

pomのインポートが機能しました。 私は現在、スプリングブートの依存関係をすべて引き出し、Artifactoryがどこにあるかを詳しく説明する企業のPOMを使用できます。これは、プラグインでは依存関係のみを引き出しませんが、私のシナリオではこれが受け入れられます。 – shaunSCM

関連する問題