Gradle verwenden Sie die Zertifikat-Authentifizierung für das repository

Das Problem

Ich habe ein Android-Gradle-Projekt, das ziehen sollte eine lib von meinem Firmen sonatype nexus-server. Der nexus server ein Zertifikat verwendet-Authentifizierung. Das bedeutet, dass der client über ein eigenes Zertifikat, das die Authentifizierung und Autorisierung ihn gegen den nexus server.

Das problem ist, wie zu konfigurieren, gradle verwenden, mein Zertifikat (das ist in der osx-keystore).

/app/build.gradle

repositories {
   //some other repositorys...
   ...
   maven {
      credentials {
         username = NEXUS_USERNAME
         password = NEXUS_PASSWORD
      }
      url 'https://prefix.server.com/nexus/content/repositories/artifactid'
   }
}

Ohne ein Zertifikat der nexus server respont mit:

Fehler: Konnte nicht KOPF 'https://prefix.server.com/nexus/content/repositories/artifactid/de/komoot/android/kmt-material-showcase/0.0.1/kmt-material-showcase-0.0.1.pom'. Erhalten status-code 400 vom server: Bad Request

Meine erste Lösung war es, zu versuchen, konfigurieren Sie die jvm zu verwenden, die osx-Schlüsselbund für die Zertifikate. Die gleiche Methode hat mir geholfen, zu schieben und zu veröffentlichen libs/Artefakte auf dem nexus-server.

/app/gradle.Eigenschaften

org.gradle.jvmargs=-Djavax.net.ssl.keyStore=NONE -Djavax.net.ssl.keyStoreType=KeychainStore -Djavax.net.ssl.keyStorePassword=-

Das funktioniert nicht, die gradle-sync-failed:
Fehler:KEINE (Keine solche Datei oder Verzeichnis)

Sieht es aus wie die gradle erwartet, dass 'NONE' der Parameter '-Djavax.net.ssl.keyStore'. Ich habe versucht mehrere uper und lower Fall-Lösungen, aber alle gescheitert.

Der zweite Ansatz war zu versuchen, es mit

org.gradle.jvmargs=-Djavax.net.ssl.keyStoreType=KeychainStore

Aber die server reagieren mit 400 wieder. Sieht aus wie die JVM-Argumente wurden nicht verwendet.

Irgendwelche Ideen oder Artikel zu diesem Thema ?
Hoffe mir kann jemand helfen.

Schreibe einen Kommentar