2017-02-03 10 views
2

外部BOMを使用して、SBTで自分のプロジェクトの依存バージョンを管理したいと考えています。例えばSBTの依存関係を管理するためにmaven BOM(部品表)を使用するにはどうすればよいですか?

、AWSのJava SDKは、彼らのMavenリポジトリに部品表アーティファクトを公開する:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/1.11.86

私はAWS SDKでの依存関係のバージョンを管理するためにそれを使用することができます。私はBOMでカバーされていますモジュールを使用したいときに、私はバージョンを省略することができますし、BOMは私のためにそれを解決します

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-bom</artifactId> 
     <version>1.11.86</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 

:Mavenので、私はそうのような私<dependencyManagement>セクションにBOMを追加することによってこれを行うことができます:

<dependencies> 
    <dependency> 
    <groupId>com.amazonaws</groupId> 
    <artifactId>aws-java-sdk-s3</artifactId> 
    </dependency> 
    <dependency> 
    <groupId>com.amazonaws</groupId> 
    <artifactId>aws-java-sdk-sns</artifactId> 
    </dependency> 
</dependencies> 

同様のGradleで、私はそうのように、このpluginを使用して私のための依存関係を管理するためにBOMを使用することができます。

apply plugin: "io.spring.dependency-management" 

dependencyManagement { 
    imports { 
     mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.86' 
    } 
} 

dependencies { 
    compile 'com.amazonaws:aws-java-sdk-sns' 
    compile 'com.amazonaws:aws-java-sdk-s3' 
} 

similaがありますr SBT用プラグイン?

+0

こんにちはを参照してください、あなたはインラインツタのXMLを使用して動作するようにSBTを得たのですか? – saurabheights

答えて

0

あなたはsbtでIvyを使用しようとしましたか?それはあなたがrev="+"

<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven" xmlns:e="http://ant.apache.org/ivy/extras"> 
    <dependencies> 
     <dependency org="com.amazonaws" name="aws-java-sdk-s3" rev="+" conf="compile->compile(*),master(*);runtime->runtime(*)" /> 
    </dependencies> 
</ivy-module> 

を使用することにより、「最新の取得」を指定することができますhttp://www.scala-sbt.org/1.0/docs/Library-Dependencies.html

+0

私は必ず最新のものを入手しようとしているわけではありません、私はそのバージョンのBOMと互換性のあるバージョンを入手しようとしています。 BOMのアイデアは、依存関係のどのバージョンがうまく一緒に遊べるかを伝えることです。最新のものを取っても必ずしもそうなるとは限りません。 – kiiadi

+0

ivysettings.xmlというファイルにプロパティ(例:slf4j.version.numer = 2.1.3)を設定できます。次に、あなたのivy.xmlにシンボリックバージョン#を使用します。 http://ant.apache.org/ivy/history/2.4.0-rc1/tutorial/defaultconf.html、http://ant.apache.org/ivy/history/2.4.0-rc1/tutorial/multiprojectを参照してください。 .html – radumanolescu

+0

私は手作業で(すなわち、私のsbtビルドのスカラコードで)必要なBOMファイルをダウンロードしてから、プロジェクトのさまざまなバージョンプロパティをプログラムで設定する必要がありますか?つまり、自分自身で依存関係を管理しなければならないということです。 – kiiadi

関連する問題