私たちのartifactory mavenリポジトリはhttpsでしかアクセスできませんが、自己署名付き証明書を使用しています。新しい開発者が搭載できるようにできるだけ簡単にしたいので、証明書をデフォルトのJavaキーストアに追加しないことを選択しました。jvm.configの相対ファイルを参照してください。
代わりに、私はすべての私たちの自己署名証明書を使用して新しいキーストアを作って、/project-files/keystore.jks
で私たちのプロジェクトのルートでこれを確認しました。私はまた/.mvn/jvm.config
を追加しました。これはいくつかのプロジェクト固有のjvmオプションを設定します(maven 3.3.1で導入されています)。私の最初の試みでは、ルートディレクトリにMavenを実行しますが、私はそのサブディレクトリから単一のモジュールを実行した場合、それがトラストストアを見つけることができないと、失敗した場合、これは正常に動作します
-Djavax.net.ssl.trustStore=/project-files/keystore.jks
-Djavax.net.ssl.trustStorePassword=password`
ました。
次にシェル変数PROJECT_BASEDIR
を追加し、jvm.configのtrustStoreが-Djavax.net.ssl.trustStore=$PROJECT_BASEDIR/project-files/keystore.jks
になりました。しかし、まだトラストストアを見つけることはできません。 ps
を使ってプロセスを見ると、変数が解決されていないことがわかります。私も-Djavax.net.ssl.trustStore=${project.parent.basedir}/project-files/keystore.jks
を試しましたが、それもうまくいきませんでした。
誰でもこの問題の解決策をご存知ですか?
サブディレクトリから1つのモジュールを実行することは実際には推奨されていませんが、それでもルートディレクトリから実行し、 'mvn -pl' –
で実行するだけです。これは一般的な設定です。ユーザー設定が表示されます。単純な解決策は、https://maven.apache.org/guides/mini/guide-repository-ssl.htmlで読むことができます。そのようなものを意図した 'MAVEN_OPTS'または' $ HOME/.mavenrc 'を経由します。 '.mvn/jvm.config'はそのプロジェクト固有の場所ではありません。これはシステム固有です。この場合、私は '.mavenrc'や' $ HOME/mavenrc_pre.cmd'というウィンドウを使う傾向があります。それに応じて 'MAVEN_OTPS'を設定します... – khmarbaise