使用Gradle将jar发布到MavenLocal

时间:2016-09-23 13:58:59

标签: gradle build.gradle

我使用Gradle来管理使用多个eclipse项目的产品构建。

其中一些项目使用的是中央存储库(如MavenCentral)无法提供的jar文件。

我希望有一个我将这些jar放入的eclipse项目,以及一个build.gradle,它将使用我指定的groupId,artifactId和version将这些jar文件放入mavenLocal。

这样我就可以将mavenLocal()添加到其他项目并指定依赖项。

我有以下build.gradle

apply plugin: 'maven-publish'

publishing {
    publications {
        maven(MavenPublication) {
            groupId 'myGroupId'
            artifactId 'myArtifact'
            version '1.2.3'
            from  <how to reference jar>
        }
    }
}

我已经尝试了file('myJar.jar'),但这并未被接受。似乎Gradle想要一个用于from值的工件,但我似乎无法找到如何将预构建的jar文件指定为该工件。

看起来它应该很简单,但我找不到它。

1 个答案:

答案 0 :(得分:2)

目前,&#39;来自&#39;只能接受components.javacomponents.web。要包含jar,请使用&#39; artifact&#39;,例如:

publishing {
    publications {
        maven(MavenPublication) {
            groupId 'myGroupId'
            artifactId 'myArtifact'
            version '1.2.3'
            artifact <path to file>
        }
    }
}

&#39;工件&#39;也可以接受存档任务的输出:

publishing {
        publications {
            maven(MavenPublication) {
                groupId 'myGroupId'
                artifactId 'myArtifact'
                version '1.2.3'
                artifact getlibrary
            }
        }
    }

task getlibrary(type:Jar){
    from <directory>
    classifier='lib'
}