2015-01-03 9 views
7

スナップショットの私のdummyプロジェクトのbuild.gradleファイルです:出版のGradleはここでローカルに

apply plugin: 'groovy' 

repositories { 
    mavenLocal() 
    mavenCentral() 
} 

dependencies { 
    compile 'org.codehaus.groovy:groovy-all:2.3.3' 
    compile 'org.slf4j:jcl-over-slf4j:1.7.7' 

    testCompile 'junit:junit:4.11' 
    testCompile 'org.mockito:mockito-all:1.10.8' 
} 

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourcesJar 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '1.11' 
} 

私はgradle clean build -Pversion=1.2.3を実行し、これはすべて私のコードをパッケージ化し、私のためbuild/libs/dummy-1.2.3.jarを作成します。

私は私の地元のMavenキャッシュ(mavenLocal())に私の「ダミー」のJARを公開することができるように、必要なのGradleコードの絶対最低限量を知っていただきたいと思います。さらに、これはバージョン管理でどのように機能しますか?私はダミーJARの具体的なバージョンを指定することができますが、私がローカルに公開しているときには、それはSNAPSHOTのバージョンを公開するのがより意味があります。私はを実行することができますgradle clean build -Pversion=0.1.SNAPSHOTしかし、私の懸念は他のローカルプロジェクトが最新のSNAPSHOTバージョンをピックアップするかどうかです。だから、再び

  1. ローカルdummyを公開する最低限のコードは何ですか?
  2. ローカルに公開する場合は、SNAPSHOTのバージョンを指定して、他のプロジェクトが常に最新のコピーを取得するようにしてください。
  3. SNAPSHOTをピックアップするために他のローカルプロジェクトで必要となるものは何ですか?何かcompile ':dummy:LATEST'のようなもの?
+1

あなたに質問された質問は回答されましたか?そうなら、答えを受け入れてください。 – Opal

答えて

1

1)あなたは、単に実行する必要があり

gradle install 

2)あなたが好きなバージョンを指定 - スナップショットのバージョンは、積極的な開発のために理にかなっています。ライブラリが変更される可能性が低いと思うと、間違いなくスナップショット以外のバージョンに移行する必要があります。

3)サードパーティのライブラリと同様に、ローカルリポジトリにあるバージョンへの依存関係を指定する必要があります。

+1

これを実行するにはどのプラグインが必要ですか? '' ' 'install'タスクがルートプロジェクト 'kotti'に見つかりませんでした。 '' ' – Adeynack

7

Here私はサンプルプロジェクトを準備しましたが、これはbuild.gradleの設定では最小限です。

  1. あなたがapply plugin: 'maven'を追加する必要があるとgroup = 'somegroup'を設定します。 mavenプラグインは、installタスクを与え、メイヴェンリポジトリにアーティファクトをインストールするにはgroupが必要です。

    次に、gradle clean installを実行します。バージョンが合格しなかった場合はと指定されていませんartifactIdが設定されていない場合はproject.nameと評価されます。 Here他のMavenプロパティを設定する方法を見つけることができます。

    ローカル開発用のスナップショットをインストールすることは間違いなく良い考えです。

  2. 他のプロジェクトで常に最新のスナップショットを選択したい場合build.gradleスクリプトに次のコードを追加する必要があります。最新バージョンへの解決を保証します。

    configurations.all { 
        resolutionStrategy { 
        cacheChangingModulesFor 0, 'seconds' 
        } 
    } 
    
  3. あなたはrepositoriesブロック(単にサンプル)へのスナップショットのレポを追加する必要がまず第一に - ローカルMavenのレポでは、このステップは必要ありません。

    maven { 
        url 'https://oss.sonatype.org/content/repositories/snapshots' 
    } 
    

    依存関係として指定する必要があります。

    group:artifact:0.+ 
    

ご質問の場合に尋ねること自由に感じています。

関連する問題