2017-01-06 5 views
0

あらかじめ作成されたjarファイルをアーティファクトとして公開する必要があるgradleビルドがあります。何らかの理由でそれは拾われていません。Gradleがカスタムjarアーティファクトを公開していません

フォルダの内容::ここでそれを再現するための簡易版です

settings.gradle 
build.gradle 
some.jar 

settings.gradle:

rootProject.name = 'some' 

build.gradle:

some-1.0.jar

apply plugin: 'base' 
apply plugin: 'maven-publish' 

group = 'foo.bar' 
version = '1.0' 

task copyPrebuilt(type: Copy) { 
    from(projectDir) { 
    include 'some.jar' 
    rename 'some', "some-$version" 
    } 
    into distsDir 
} 

artifacts { 
    // should be 'archives'? 
    // http://stackoverflow.com/questions/39068090/gradle-archives-artifacts-not-populated-to-default-configuration 
    'default' (file("$distsDir/some-${version}.jar")) { 
    name 'some' 
    type 'jar' 
    builtBy copyPrebuilt 
    } 
} 
~/.m2/repository/foo/bar/some/1.0にコピーされませんby gradle publishToMavenLocal

手がかりはありますか?

答えて

1

公表何かを得るための最も簡単な方法は、出版物を定義することです:

apply plugin: 'base' 
apply plugin: 'maven-publish' 

group = 'foo.bar' 
version = '1.0' 

task copyPrebuilt(type: Copy) { 
    from(projectDir) { 
     include 'some.jar' 
     rename 'some', "some-$version" 
    } 
    into buildDir 
} 

publishToMavenLocal.dependsOn copyPrebuilt 

publishing { 
    publications { 
     prebuilt(MavenPublication) { 
      artifact file("$buildDir/some-${version}.jar") 
     } 
    } 
} 

このコードはpublishToMavenLocalタスクがローカルのMavenリポジトリへのいくつかの-1.0.jarをインストールします。

関連する問題