[英]Gradle build failing to get dependency from custom maven repository
I have created a custom maven repo on BitBucket following the link . 我在链接后在BitBucket上创建了一个自定义maven仓库。 When trying to use the dependencies in my android project using Gradle I am getting following error
当我尝试使用Gradle在我的android项目中使用依赖项时,我收到以下错误
Executing tasks: [:app:compileDebugJava]
Configuration on demand is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom
[Fatal Error] testCommon-1.0.pom:2:10: Already seen doctype.
Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-v4/20.0.0/support-v4-20.0.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-v4/20.0.0/support-v4-20.0.0.pom
[Fatal Error] support-v4-20.0.0.pom:2:10: Already seen doctype.
Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-annotations/20.0.0/support-annotations-20.0.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-annotations/20.0.0/support-annotations-20.0.0.pom
[Fatal Error] support-annotations-20.0.0.pom:2:10: Already seen doctype.
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
> Could not resolve com.test.com:testCommon:1.0.
Required by:
SettingsAid:app:unspecified
> Could not parse POM https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom
> Already seen doctype.
I have changed the link. 我已经改变了链接。 But opening the link directly returns the checksum.
但是直接打开链接会返回校验和。
Below is my build.gradle 下面是我的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'maven'
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.test.sampleapp"
minSdkVersion 11
targetSdkVersion 19
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
repositories {
mavenCentral()
maven {
credentials {
username "test@gmail.com"
password "test"
}
url "https://bitbucket.org/test/maven-repo/raw/master/repository/"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:20.+'
compile 'com.test.com:testCommon:1.0'
compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
I am not sure what I am doing wrong here. 我不确定我在这里做错了什么。 I have also followed this link .
我也跟着这个链接 。 Can anybody help me in fixing this.
任何人都可以帮我解决这个问题。
Update 1: 更新1:
When I checked ~.gradle folder, even after giving the credentials it is not logging in and saving the full page. 当我检查〜.gradle文件夹时,即使在提供凭据后它也没有登录并保存整页。 When I changed my repo from private to public the code started working.
当我将我的repo从私有更改为public时 ,代码开始工作。 But I do not want to make my repo public.
但我不想让我的回购公开。 How to make gradle to use the login credentials passed?
如何让gradle使用传递的登录凭据?
Thanks. 谢谢。
I fixed the issue by changing repo path to : 我通过将repo路径更改为:
"https://"+username+":"+password+"@bitbucket.org/test/maven-repo/raw/master/repository/"
UserName and password are set in gradle.properties
. 用户名和密码在
gradle.properties
中设置。
我的团队和我使用Bitbucket REST API解决了它,你可以在这个答案中找到更多细节: https : //stackoverflow.com/a/30117276/4877779
i used to struggle against this problem for three days. 我过去常常与这个问题作斗争三天。 according to your code, here is my solution.
根据你的代码,这是我的解决方案。 hope that save your life.
希望拯救你的生命。
your maven url is wrong. 你的maven网址错了。 please use the right api of bitbuckest.org.
请使用bitbuckest.org的正确api。 and the url format should be https://api.bitbucket.org/1.0/repositories/team-or-user-name/prject-name/raw/branch-name .
网址格式应为https://api.bitbucket.org/1.0/repositories/team-or-user-name/prject-name/raw/branch-name 。 example: https://api.bitbucket.org/1.0/repositories/yolonetltd/yolonet-mvn-repo/raw/releases/ .
例如: https : //api.bitbucket.org/1.0/repositories/yolonetltd/yolonet-mvn-repo/raw/releases/ 。 note that do not use api.bitbucket.org/2.0, use api.bitbucket.org/1.0!
请注意,不要使用api.bitbucket.org/2.0,请使用api.bitbucket.org/1.0!
repositories { mavenCentral() maven { credentials { username "xxxxx" // note, not email, use login user name please! password "xxxxx" } url "https://api.bitbucket.org/1.0/repositories/test/maven-repo/raw/master" // note, use api 1.0, do not use api 2.0! } }
if your dependency is aar format, you should add @aar
after the dependency description. 如果您的依赖项是aar格式,则应在依赖项描述之后添加
@aar
。 dependencies closure should like below. 依赖关闭应该如下所示。 otherwise gradle will throw dependency not found error.
否则gradle将抛出依赖项未找到错误。
dependencies { ... compile 'com.test.com:testCommon:1.0@aar' ... }
make sure your remote bitbucket maven repository holds the complete files directory like below. 确保您的远程bitbucket maven存储库保存完整的文件目录,如下所示。 otherwise gradle will also throw dependency not found error.
否则gradle也会抛出依赖未找到的错误。
| ├── com │ ├── as-gradle │ │ └── demo │ │ └── localrepo │ │ ├── 1.0.0 │ │ │ ├── localrepo-1.0.0.aar │ │ │ ├── localrepo-1.0.0.aar.md5 │ │ │ ├── localrepo-1.0.0.aar.sha1 │ │ │ ├── localrepo-1.0.0.pom │ │ │ ├── localrepo-1.0.0.pom.md5 │ │ │ └── localrepo-1.0.0.pom.sha1 │ │ ├── maven-metadata.xml │ │ ├── maven-metadata.xml.md5 │ │ └── maven-metadata.xml.sha1
add authentication {
basic(BasicAuthentication)
}
maven {
credentials {
username ''
password ''
}
authentication {
basic(BasicAuthentication)
}
url "https://bitbucket.org/USER/REPO/raw/BRANCH/"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.