7

可能かどうか、また grails プラグインの機能を拡張する一般的な方法があるかどうかを知りたいです。

最近、コメント可能なプラグインをインストールしましたが、いくつかの変更を加える必要があります。コードを変更すると、コードはプロジェクトと一緒に保存されないため (ユーザー ディレクトリに保存されます)、プラグインが更新された後 (またはインストールされた他のマシンのプロジェクト)、これらの変更は失われます。

誰かが何か考えがありますか?

ありがとう、ニコラス

4

3 に答える 3

9

アーティファクト(ドメインクラスなど)をオーバーライドする場合は、プロジェクトに同じ名前のアーティファクトを作成します。プラグインはアプリケーションクラスとは別にコンパイルされ、それらのアーティファクトが最初に登録されるため、メインアプリにアーティファクトがある場合は、プラグインが置き換えられます。ドメインクラスには必ず同じパッケージを使用してください。ただし、これはコントローラーやサービスには必要ありません。

于 2011-03-15T20:57:54.193 に答える
4

プラグインを完全に変更したい場合は、プラグインを変更してから再コンパイルし、別の名前の zip ファイルにビルドしてみてください。

その後、ソース コードからカスタマイズされたプラグインをインストールできます。ここで質問を参照できます。

于 2011-03-16T07:43:04.770 に答える
-1

あるプロジェクトでは、1 つの環境 (QA) について、アプリがメールを送信できる許可された電子メール アドレスのリストが必要でした。これにより、プロジェクトに関与するさまざまな関係者が、メールが送信されるリスクなしにアプリをテストできます。私たちの顧客顧客(最終顧客)。

メール送信を行うすべてのコードブロックを変更するのは大変な仕事だったので、メールプラグイン (grails.plugin.mail.MailMessageBuilder) のコアクラス用にカスタムエクステンダーを実装しました。アプリの構成を変更し、メールを送信する前にアドレスを解決するメソッド (toDestinationAddresses) をオーバーライドしました。次に、Grails ブートストラップの Groovy metaClass を介して、MailMessageBuilders を生成する (プラグインの) ファクトリ メソッドを置き換えて、カスタム ビルダーを生成しました。

これはクリーンで邪魔にならない修正で、うまく機能しました。

于 2012-09-07T08:07:28.707 に答える