Gradle Android 与maven仓库通信认证错误
Gradle Android communicate with maven repository Authentication error
我的 gradle 构建中有这些但是当我尝试编译 compile'com.livegenic:livegenic-core:2.0.0'
它给了我 Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
也许我正在使用我的 gradle srcipt 以错误的方式进行身份验证?
repositories {
maven {
credentials {
username 'admin'
password '*********'
}
url 'https://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/'
}
}
已编辑:
这是错误的踪迹
Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/com/livegenic/livegenic-core/2.0.0/livegenic-core-2.
0.0.pom'.
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:83)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawGet(HttpClientHelper.java:69)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performGet(HttpClientHelper.java:73)
at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:51)
at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:34)
at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.openResource(DefaultExternalResourceConnector.java:41)
at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor.openResource(ProgressLoggingExternalResourceAccessor.java:36)
at org.gradle.internal.resource.transport.DefaultExternalResourceRepository.getResource(DefaultExternalResourceRepository.java:63)
at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.getResource(DefaultCacheAwareExternalResourceAccessor.java:75)
at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadStaticResource(DefaultExternalResourceArtifactResolver.java:90)
... 133 more
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)
at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:118)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:113)
at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:90)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:81)
... 142 more
而不是使用 https
尝试使用 http
repositories {
maven {
credentials {
username 'admin'
password '*********'
}
url 'http://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/'
}
}
正如所指出的,是的,这破坏了 https 的保护,100% 同意。唯一真正的解决方案是让服务器修复它的证书。然而,某些企业防火墙可能正在放弃所有流量,是的,它确实发生了。如果您有权访问该证书用于重新签署所有内容,那么您可以像这样将证书导入您的工具链
$ cd $JAVA_HOME/jre/lib/security
$ mv cacerts cacerts.orig
$ chmod 444 cacerts.orig
$ cp cacerts.orig cacerts
$ chmod 664 cacerts
$ $JAVA_HOME/bin/keytool -keystore cacerts -import -alias MyAlias -file /path/to/myCert.cer
请确保您 运行 以能够修改系统上 Java 密钥库的用户身份导入密钥工具。对我来说 Mac 是 root。
我的 gradle 构建中有这些但是当我尝试编译 compile'com.livegenic:livegenic-core:2.0.0'
它给了我 Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
也许我正在使用我的 gradle srcipt 以错误的方式进行身份验证?
repositories {
maven {
credentials {
username 'admin'
password '*********'
}
url 'https://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/'
}
}
已编辑: 这是错误的踪迹
Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/com/livegenic/livegenic-core/2.0.0/livegenic-core-2.
0.0.pom'.
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:83)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawGet(HttpClientHelper.java:69)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performGet(HttpClientHelper.java:73)
at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:51)
at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:34)
at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.openResource(DefaultExternalResourceConnector.java:41)
at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor.openResource(ProgressLoggingExternalResourceAccessor.java:36)
at org.gradle.internal.resource.transport.DefaultExternalResourceRepository.getResource(DefaultExternalResourceRepository.java:63)
at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.getResource(DefaultCacheAwareExternalResourceAccessor.java:75)
at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadStaticResource(DefaultExternalResourceArtifactResolver.java:90)
... 133 more
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)
at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:118)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:113)
at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:90)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:81)
... 142 more
而不是使用 https
尝试使用 http
repositories {
maven {
credentials {
username 'admin'
password '*********'
}
url 'http://cloudbuild.livegenic.com/nexus/content/repositories/test_kirill/'
}
}
正如所指出的,是的,这破坏了 https 的保护,100% 同意。唯一真正的解决方案是让服务器修复它的证书。然而,某些企业防火墙可能正在放弃所有流量,是的,它确实发生了。如果您有权访问该证书用于重新签署所有内容,那么您可以像这样将证书导入您的工具链
$ cd $JAVA_HOME/jre/lib/security
$ mv cacerts cacerts.orig
$ chmod 444 cacerts.orig
$ cp cacerts.orig cacerts
$ chmod 664 cacerts
$ $JAVA_HOME/bin/keytool -keystore cacerts -import -alias MyAlias -file /path/to/myCert.cer
请确保您 运行 以能够修改系统上 Java 密钥库的用户身份导入密钥工具。对我来说 Mac 是 root。