私は自分のソフトウェアをリリースすることを少し試しています(これは以前にやったことがありません)。これまでのところ、mvn release:prepareを実行できました。 release:performを実行すると、次のエラーが表示されます。
[INFO] [エラー]目標org.Apache.maven.plugins:maven-deploy-plug in:2.7:deploy(default-deploy)のプロジェクトimg2stlの実行に失敗しました:デプロイに失敗しましたアーティファクト:C はアーティファクトnl.byterendition:img2stl:jar:0.9をbyterenditio n-releases(https:// localhost:443/svn/repo/releases)に転送できません:peer認証されていない-> [ヘルプ1]
Localhost:443にローカルパスワードで保護されたsvnリポジトリを設定したので、.m2フォルダーのsettings.xmlに以下を追加しました
Edwin Buckの回答を含むように編集:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>byterendition-releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>byterendition-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
</settings>
これは私のPOMの便利なセクションです。
<distributionManagement>
<repository>
<id>byterendition-releases</id>
<url>https://localhost:443/svn/repo/releases</url>
</repository>
<snapshotRepository>
<id>byterendition-snapshots</id>
<url>https://localhost:443/svn/repo/snapshots</url>
</snapshotRepository>
</distributionManagement>
どうすればMavenでsvnリポジトリにアクセスできますか?
わかりました、エドウィン・バックがローカルホストを使うべきではないと示唆したように、私はそれを動作させることができなかったので、さもなければ仕事に使用するリモートSVNサーバーを使用してこれを試してみると思いました。今、私は別のエラーが発生します:
[INFO] [エラー]プロジェクトimg2stlでのゴールorg.Apache.maven.plugins:maven-deploy-plug in:2.7:deploy(default-deploy)の実行に失敗しました:デプロイに失敗しましたアーティファクト:C アーティファクトnl.byterendition:img2stl:jar:0.9.5 by/ter bybyterendit ion-releases(https://svn.science.ru.nl/repos/ estens/releases /):ファイルの転送に失敗しました: ferファイル:https://svn.science.ru.nl/repos/estens/releases/nl/byterendition/img2s tl/0.9.5 /img2stl-0.9.5.jar。戻りコード:409、ReasonPhrase:Conflict。 -> [Hel p 1]
繰り返しますが、Eclipseからこのリポジトリにアクセスできます。誰かが私が間違っていることを知っていますか?
バージョン3.0.5以降、Mavenはhttps接続でSSL証明書をチェックします。コマンドラインパラメーターを追加することで一時的にこれを修正できます
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
SSL証明書をJREにインストールすると、問題が完全に修正されます。
公式ドキュメント: http://maven.Apache.org/wagon/wagon-providers/wagon-http/
ステップ1。 DER形式の証明書をダウンロード* .cer(/X.509 .cert)ファイルをローカルディレクトリに
(ブラウザからこれを行うことができます; Chromeの場合、ロック記号をクリックし、証明書を表示->ファイルにコピー)
ステップ2。インポート先Java trust store
\ Program_Files\Java\jdk1.6.0_45\jre\lib\security>%Java_HOME%\ jre\bin\keytool -v -alias mavensrv -import -file d:\ temp\apacher.cer -keystore trust.jks
ステップ3。環境変数としてMavenへのパスを指定します
set MAVEN_OPTS = -Xmx512m -Djavax.net.ssl.trustStore =%Java_HOME%/ jre/lib/security/trust.jks -Djavax.net.ssl.trustStorePassword = changeit -Djavax.net.ssl.keyStore =%Java_HOME%/ jre/lib/security/trust.jks -Djavax.net.ssl.keyStoreType = jks -Djavax.net.ssl.keyStorePassword = changeit
https://github.com/escline/InstallCert は、必要なツールを提供し、リモート証明書をシステム全体の証明書ストアにインポートする方法を順を追って説明します。
settings.xml
のエントリはlocalhost
のサーバーID用ですが、byterendition-releases
およびbyterendition-snapshots
のIDでリポジトリにアクセスしています。
これは、Mavenがこれらの2つのサーバーに異なる「アイデンティティ」を持っているため、これらの2つのサーバーに資格情報を再統合および関連付けしないことを意味します。 byterendition-releases
およびbyterendition-snapshots
のsettings.xmlエントリが必要です。
次のようなエントリを追加した場合
<server>
<id>byterendition-releases</id>
<username>user</username>
<password>password</password>
</server>
次に、mavenはbyterendition-releases
のサーバー認証情報エントリを持っているため、user
のユーザー名とpassword
のパスワードを使用して、byterendition-releases
へのhttps認証チャレンジに対応します。
また、byterendition-snapshots
のエントリを追加するか、byterendition-releases
と同じサーバーIDを持つように設定する必要があります。
---更新された質問に遅れないように編集---
localhost
URLを使用してリポジトリにアクセスします。リポジトリが実際に同じホストマシン上にある場合、これは機能する可能性がありますが、機能しない可能性がある多くの理由があります。
どちらにしても、localhostを捨ててください。マシンの安定したDNS名を取得できない場合は、IPアドレスを入力することをお勧めします。 SVNサーバーがDHCPを使用している場合、DynamicDNSを機能させるために時間をかけます(しかし、実際には、可能であればサーバーの静的IPを取得する必要があります)。
ここでJavaバージョンが違いを生むことができることがわかりました。
Maven 3.0.5では、Java 6でこのエラーが発生していましたが、Java 7(またはそれ以降)に切り替えると解決されました。
Maven 3.6.0を使用して同じ問題が発生しました。提案されたすべてのソリューション(-Dmaven.wagon.http.ssl.insecure = true、-Dmaven.wagon.http.ssl.allowall = trueを使用、CAストアを更新)が機能しませんでした。実際、最初のモジュールではなく〜25ish程度で展開が失敗し、以前のすべてのモジュールで成功しました。したがって、一般的にSSL処理は問題なく、ローカル<>サーバー接続または証明書に一般的な問題があると想定しました。
しばらく混乱していましたが、今日、 このjacocoの問題 に言及しています パラメータ に言及しています。デプロイプラグイン構成の一部としてこのパラメーターをpom.xmlに追加すると、問題が解決しました。
ただし、最初のモジュールではなく、後のモジュールで展開が失敗した理由についてはまだ明確ではありません。
私はmaven 3.5.3を使用していますが、上記の回答に従ってコマンドラインパラメーターを追加することにより、このSSLの問題を一時的に修正することを選択します。ただし、パラメータの形式は少し変更されているようです。
-D maven.wagon.http.ssl.insecure=true -D maven.wagon.http.ssl.allowall=true
申し訳ありませんが、@ Alex Punnenの回答はコメントできないため、新しい回答を作成する必要があります。
OSX Mavericksにアップグレードした後、多くのセキュリティ問題が発生しました
これを適用しましたJavaアップデートし、すべての問題を修正しました: http://support.Apple.com/kb/DL1572?viewlocale=en_US
サーバーへの接続時にSSLの問題のように見えます。たぶん、ユーザー名とパスワードをチェックする前に。
SSLクライアント認証でsvnサーバーを設定しましたか?これは、クライアント証明書をサーバーに送信する必要があることを意味します。