使用gradle将jar上传到本地Maven存储库

时间:2014-08-10 22:13:14

标签: maven gradle android-studio

已经多次询问过这个问题,但不知怎的,我不知道这个问题。 Gradle是一个很棒的工具,但它的文档不是很好。没有任何例子使得几乎不可能理解每天不使用它的人。

我正在使用Android Studio,我想将模块输出jar上传到我当地的Maven存储库。

apply plugin: 'java'

dependencies {
    compile 'com.google.http-client:google-http-client-android:1.18.0-rc'
}


apply plugin: 'maven'
configure(install.repositories.mavenInstaller) {
    pom.project {
        groupId 'com.example'
        artifactId 'example'
        packaging 'jar'
    }
}

当我在Android Studio中开始构建时,我可以在Gradle选项卡上看到

:install

被调用。我的build文件夹中也有一个新的jar,但是jar没有上传到Maven。 [Maven回购存在且Google appengine gradle插件从同一项目的另一个模块上传它的jar就好了。]

我错过了什么?

2 个答案:

答案 0 :(得分:5)

我怀疑问题是你只是在编辑POM(通过pom.project),而不是配置用于安装的实际Maven坐标。请尝试以下方法:

// best way to set group ID
group = 'com.example'

install {
    repositories.mavenInstaller {
        // only necessary if artifact ID diverges from project name
        // the latter defaults to project directory name and can be
        // configured in settings.gradle
        pom.artifactId = 'myName' 
        // shouldn't be needed as this is the default anyway
        pom.packaging = 'jar'
    }
}

PS:完整Gradle发行版中的samples目录包含许多示例版本,也适用于maven插件。

答案 1 :(得分:0)

Peter N在接受的答案的注释中是正确的,这是可行的,但不应作为接受的答案。

您应该将此文件保存在build.gradle文件中

apply plugin: "maven"

然后您可以做一个

$ ./gradlew install

或使用内置任务

$ ./gradlew publishToMavenLocal

这两种方法都将工件安装在$HOME/.m2/com/example/example/version