1

grails 2.2に切り替えたところ、プラグインに大きな問題が発生しました。私はアプリケーション-my-appとプラグイン-my-pluginを持っています。spring-security-coreプラグインをmy-pluginにインストールしてから、my-pluginをmy-appにインストールしたいと思います。これを実行してs2-quickstartを実行すると、LoginControllerが作成されます。今は問題なくmy-pluginを起動できますが、my-appを起動しようとすると、springsecurityクラスが見つからないと文句を言います。エラーは次のようになります。

12:クラスorg.springframework.security.web.WebAttributes @行12、列1を解決できません。7:クラスorg.springframework.security.authentication.AccountExpiredException @行7、列1を解決できません。11:クラスを解決できません。 org.springframework.security.core.context.SecurityContextHolder @ 11行目、1列目。

my-pluginだけがSpringSecurityプラグインの依存関係を見ることができ、my-appは見ることができないように私には見えます。そのため、マニュアルに従って考えてもカスケードされませんでした。

また、BuildConfig.confに次のように追加してspring-security-coreプラグインをインストールしようとしました:コンパイル ":spring-security-core:1.2.7.3"が、どちらも機能しませんでした。

何か案は?

4

2 に答える 2

0

install-pluginプラグインで使用する場合は、 に行を追加するだけでローカルにインストールされapplication.propertiesます。プラグインの依存関係としてエクスポートされません。code-coverageこれは、開発およびテスト中に使用したいが、ユーザーにインストールを強制したくない場合などのプラグインに使用できます。

古いバージョンの GrailsdependsOnでは、プラグイン記述子のマップを使用して、プラグインの依存関係を表現していました。これは、 のpluginsセクションに登録されている依存関係を支持して非推奨になりましたBuildConfig.groovy。これは、一貫性を維持するためと、スコープや除外の指定など、依存関係 DSL でサポートされているよりきめ細かい機能を利用するためです。これはアプリケーションにも当てはまります。install-pluginアプリやプラグインには使用しないでください。常に を使用してBuildConfig.groovyください。

spring-security-ldap プラグインの BuildConfig.groovyを見てください。コア プラグインに対するコンパイル スコープの依存関係に加えて、hibernateエクスポートされないプラグイン (テスト用であるため) に対する依存関係と、リリース プラグインに対するビルド スコープの依存関係 (プラグインをリリースするためにのみ使用されるため、エクスポートされない) があります。 .

のコア プラグインに同様の依存関係を使用する必要がありますBuildConfig.groovy。内のプラグイン参照をすべて削除し、構文にapplication.properties変換して実行し、その後に.BuildConfig.groovygrails cleangrails compile

于 2013-01-29T15:23:27.443 に答える
0

バートさん、アドバイスありがとうございます。私はそれを使用しましたが、ここに私が来たものがあります:

plugin-app を作成し、それに spring-security-core プラグインをインストールしました (DataSource.groovy を使用し、プラグインをインストールしません)。次に、メインアプリを作成し、プラグインアプリをインストールしました (再び DataSource.groovy を使用)。grails 2.1.1 でこれを行ったとき、すべて問題なく動作しました。メイン アプリで spring-security を使用できたので、依存関係が適切にプルされました。私がすべて同じことをしたとき、grails 2.2 ではメインアプリで spring-security を使用できなかったため、依存関係がプルされませんでした。そのため、これは新しい grails バージョンの何らかのバグである可能性があります。

于 2013-01-29T16:37:00.977 に答える