我的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呢?
答案 0 :(得分:0)
我根本不确定,但我可以试着猜出刚刚发生的事情。
根据gradle规范,任务uploadArchives {...}
的类型为:(type: Upload)
让我们去上传规范,以及我们在这里得到的内容:
属性:
我猜你有:
configurations {
externalJar
}
在uploadArchives上面作为全局配置,因此uploadArchives已将您的externalJar作为配置带到MyApp-1.2.1.jar。
也许尝试在confirguration{}
uploadArchives {}