3

Grails 2.4.1 とThe Grails Release プラグインバージョン 3.0.1 を使用しています。

私は Sonatype nexus リポジトリ (v2.3.1-01) をセットアップしており、他のいくつかのプロジェクトで問題なく使用されています。

nexus の SNAPSHOT リポジトリ (および後でリリース リポジトリ) を介して配布する新しいプラグインを作成しようとしています。

${projectName}GrailsPlugin.groovy ファイルには次のものがあります。

def groupId ="my-department-grails-plugins"
def version = "0.1-SNAPSHOT"

私のapplication.propertiesファイルには次のものがあります:

app.name=MyPluginNameForGrails

私の BuildConfig.groovy には次のものがあります。

grails.project.repos.newsnapshots.url = "http://internal.server.address/nexus/service/local/repositories/snapshots"
grails.project.repos.newsnapshots.username = "username"
grails.project.repos.newsnapshots.password = "password"

次のコマンドで物事を開始しようとしています:

publish-plugin --snapshot --repository=newsnapshots --stacktrace

ビルドの成功は、ネクサスにプッシュしようとするまですべてがうまくいくように見え、次のようになります。

grails.project.repos.newsnapshots から構成されたユーザー名とパスワードを使用する ....エラー | プラグインの公開に失敗しました: アーティファクト 'ald-grails-plugins:my-plugin-name-for-grails:zip' のデプロイ中にエラーが発生しました: アーティファクトのデプロイ中にエラーが発生しました: ファイルの転送に失敗しました: http://internal.server.address/nexus/content /groups/public/my-department-grails-plugins/my-plugin-name-for-grails/0.1-SNAPSHOT/my-plugin-name-for-grails-0.1-20140815.191240-1.zip . 戻りコード: 400

関連すると思われる関連する StackOverflow の質問を見つけましたが、400 の原因として説明されている条件はありません。

400 年代の考えられる原因を説明している Sonatype Nexus の記事も見つけましたが、それもそうではないようです。

私が指しているリポジトリに気付いた場合、それは直接リポジトリへのものですが、エラーメッセージにはグループへのパスがリストされています。これはどういうわけか関連している可能性があると考えていますが、そうであれば...これはリリースプラグインの内部で何らかの形で発生しているように見えるため、修正方法がわかりません。

また、GrailsPlugin.groovy ファイルから -SNAPSHOT を削除し、目的のリポジトリを RELEASES リポジトリに変更したことも付け加えておきます。結果はまったく同じです。

4

2 に答える 2

3

私の問題は、私の .m2/settings.xml ファイルで定義されたミラーが原因でした (解決につながったコメントをくれたJeff Beckに感謝します!)。これにより、リポジトリへの POST がパブリック GROUP にリダイレクトされ、アーティファクトのアップロードが許可されませんでした。

トラブルシューティングの問題に寄与していた他のいくつかの二次的な原因があります。

  1. SNAPSHOT リポジトリにアップロードする際、バージョン番号は x-SNAPSHOT のパターンである必要があります。ここで、x は何でもかまいません (?)。
  2. Nexus ReST API を使用している場合は、SNAPSHOT リポジトリにアップロードできません。これは実際に私の特定のソリューションに影響を与えることはありませんでしたが、この問題に遭遇する可能性のある他の人にとっては注目に値します.
  3. NON-SNAPSHOT リポジトリにアップロードする場合、バージョン番号は x-SNAPSHOT のパターンであってはなりません。
于 2014-08-18T17:43:39.270 に答える
0

.m2 ディレクトリにミラー設定を指定すると、grails リリース プラグインは、ミラーがデプロイ先と一致する場合に x をデプロイしようとすると問題が発生します。ミラー設定を削除するか、ターゲット リポジトリと一致しないように変更できます。詳細については、これらの jiras を確認してください。

于 2014-08-20T02:40:47.417 に答える