上传项目jar& exernal jar到本地maven存储库

时间:2014-11-05 16:03:52

标签: gradle android-studio android-gradle build.gradle gradlew

我的android项目结构(MyApp是Android Studio项目的一个模块):

MyApp
  - external/
      mylib.jar
  - src/
  - res/
  ...
  build.gradle

我首先有一个外部jar,我想把它上传到我当地的maven repo,我的gradle构建看起来像这样:

configurations {
    externalJar
}

artifacts {

    externalJar file: file('external/mylib.jar')
    artifact = 'exernalLib'
    version = '1.1.0'
}

uploadExternalJar {
    repositories {
        mavenDeployer {
            repository(url: "file://${System.properties['user.home']}/.m2/repository")
        }
    }
}

有效!

然后,我还想将我的项目jar工件上传到本地maven repo。我添加了以下代码:

group = 'com.my.app'
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://${System.properties['user.home']}/.m2/repository")
            pom.project {
                version  '1.2.1'
                artifactId  'MyApp'
                packaging 'jar'
            }

        }
    }
} 

当我运行./gradlew build时,两个任务都被执行,但是当我在本地maven中检查MyApp-1.2.1.jar时,其内容被外部lib jar覆盖。

我不确定我做错了什么。但我怎么能上传外部jar和amp;我的项目罐到当地的maven呢?

1 个答案:

答案 0 :(得分:0)

我根本不确定,但我可以试着猜出刚刚发生的事情。 根据gradle规范,任务uploadArchives {...}的类型为:(type: Upload)

让我们去上传规范,以及我们在这里得到的内容:

属性:

  • 伪影
  • 构造
  • 存储库
  • uploadDescriptor

我猜你有:

configurations {
    externalJar
}

在uploadArchives上面作为全局配置,因此uploadArchives已将您的externalJar作为配置带到MyApp-1.2.1.jar。

也许尝试在confirguration{}

中添加空uploadArchives {}