8

Grails 2.1.1 と Maven 3.0.3 を使用しています。

私のbuildConfig.groovyでは、.xmlをpom true介してpom.xmlを生成しましたgrails create-pom。このpomには<version>1.0-SNAPSHOT</version>、ローカルのmavenリポジトリにのみ存在する依存関係があります。mvn clean compileこのpomで正常に実行できます。

ただし、実行grails refresh-dependenciesしても、スナップショットの依存関係の最新バージョンがローカルの Maven リポジトリからダウンロードされません。最新バージョンをダウンロードする唯一の方法は、ivy キャッシュから手動で削除することです。

ドキュメントによると:

バージョン番号が -SNAPSHOT で終わるすべての依存関係 (jar およびプラグイン) は、暗黙的に Grails によって変更されていると見なされます。

スナップショットファイルが変更されていることを認識し、変更されたときにダウンロードすると思います。他の設定手順がありませんか? 依存関係の管理にのみ Maven を使用したいのですが、Grails で Maven を使用する方法は完全に間違っていますか?

4

2 に答える 2

8

これは、実際には Aether リゾルバの通常の動作です。

--refresh-dependenciesローカルの Maven キャッシュをバイパスしません。これを行うには、依存関係を含む Maven リポジトリを設定して、常に新しいスナップショットをダウンロードする必要があります。BuildConfig.groovy のリポジトリ ブロック内:

mavenRepo ("http://my.server/repos/my-grails-plugins") {
    updatePolicy 'always'
}

http://asoftwareguy.com/2013/10/25/grails-2-3-maven-dependency-caching-issues/のクレジット。

于 2014-12-18T22:12:12.817 に答える
0

応答がないので、これに対する解決策のように思われるのは、grails コマンド ラインを使用するのではなく、Grails の Maven ゴールを使用することです。

mvn grails:run-appトリックを行います。すべてのスナップショットの依存関係が更新され、アプリを起動して、ローカルの変更が反映されていることを確認できます。このようにして、私はアイビーを完全に無視し、すべてをmavenに任せています。

編集:このルートに進む場合は、pom.xml などを設定するためのMaven 統合に関するユーザー ガイドの第 5 章に従うことをお勧めします。これに従って、驚くことなく設定することができました。

于 2012-11-10T14:24:22.830 に答える