私はcompanysのsonatype nexusサーバーからlibを取得するAndroid Gradleプロジェクトを持っています。ネクサスサーバは証明書認証を使用します。つまり、クライアントには、Nexusサーバに対して認証して認証するプライベート証明書があります。
問題は、(osxキーストアにある)自分の証明書を使用するようにgradleを設定する方法です。
で証明書にネクサスサーバーrespontを与えることなく/app/build.gradle
repositories {
// some other repositorys...
...
maven {
credentials {
username = NEXUS_USERNAME
password = NEXUS_PASSWORD
}
url 'https://prefix.server.com/nexus/content/repositories/artifactid'
}
}
:
エラー:HEAD 'https://prefix.server.com/nexus/content/repositories/artifactid/de/komoot/android/kmt-material-showcase/0.0.1/kmt-material-showcase-0.0.1.pom' ことができませんでした。サーバーからステータスコード400を受信しました:Bad Request
私の最初の解決策は、証明書にosxキーチェーンを使用するようにjvmを構成することでした。同じ方法で、nexusサーバでlibs/artifactsをプッシュして公開する手助けをしました。 エラー:NONE(そのようなファイルやディレクトリは)
それがあることが予想Gradleのように見えるん
/app/gradle.properties
org.gradle.jvmargs=-Djavax.net.ssl.keyStore=NONE -Djavax.net.ssl.keyStoreType=KeychainStore -Djavax.net.ssl.keyStorePassword=-
これはGradleの同期が失敗した動作しません。パラメータ '-Djavax.net.ssl.keyStore'の 'NONE'。私はいくつかのuperとlower caseのソリューションを試しましたが、すべて失敗しました。
第2のアプローチは、
org.gradle.jvmargs=-Djavax.net.ssl.keyStoreType=KeychainStore
でそれを試してみましたが、サーバーは再び400で応答します。 JVM引数が使用されていないように見えます。
このトピックのアイデアや記事はありますか? 誰かが私を助けることを願っています。
"KeychainStore"は有効なキーストアタイプではありません。この例では、「PKCS12」である必要があります。そうでなければ、すばらしい答えです - ありがとう! – Mark