Gradle没有发布自定义jar工件

Gradle没有发布自定义jar工件,gradle,Gradle,我有一个gradle构建,它必须将预构建的jar文件发布为工件。由于某种原因,它没有被拾起。这里有一个简化版本来复制它: 文件夹内容: settings.gradle build.gradle some.jar settings.gradle: rootProject.name = 'some' build.gradle: apply plugin: 'base' apply plugin: 'maven-publish' group = 'foo.bar' version = '1.0'

我有一个gradle构建,它必须将预构建的jar文件发布为工件。由于某种原因,它没有被拾起。这里有一个简化版本来复制它:

文件夹内容:

settings.gradle
build.gradle
some.jar
settings.gradle:

rootProject.name = 'some'
build.gradle:

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
  }
}
gradlepublishtoavenlocal
不会将
some-1.0.jar
复制到
~/.m2/repository/foo/bar/some/1.0


有什么线索吗?

发布内容的最简单方法是定义发布对象:

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")
        }
    }
}
这段代码使
publishtoavenlocal
task将some-1.0.jar安装到本地maven存储库中