2017-02-20 8 views
0

grails 2以前では、プラグインはソースを.grails/<version>/projects/<projectName>/plugins/etcにインストールしました。これにより、チェックアウトして完全なソースをロードせずにインストールされたプラグインを簡単にデバッグすることができました。プラグインをローカルにインストールする必要はありません。grails 3プロジェクトプラグインのソースコード?

グレイス3では、これは欠落しているようです...または、おそらく私は何かを欠いていますか?私のプロジェクトのどこかに、プラグインをチェックアウトせずにプラグインソースを直接編集し、コンパイルしてローカルにインストールすることができますか?

+0

http://stackoverflow.com/questions/30623499/grails-3-0-adding-an-inline-plugin http://stackoverflow.com/questions/34470356/running-a-grails-3-project- – Vahid

答えて

1

はい、あなたはかなり重要な何か:)

Grailsの2つのプラグインは、ソースコードを含むZIPファイルとして配布されますが、Grailsの3+プラグインがクラスにコンパイルされたコード付きJARファイルとして配布されているが欠落しています。これには以前のアプローチよりも複数の利点があります。ソースから直接編集することはできません(プラグインの動作を変更する最悪の方法です)。そして、最初のアプリをプラグインのロード -

は、あなたの代わりに何をすべき(にGrailsのすべてのバージョン)アプリとインストールされたプラグインの間、コンパイル/ロード/解決順序を活用することです。これにより、アプリケーションコード内の同じ名前と同じ相対位置を持つファイル(Groovy/Java/GSP/etc。)を作成するだけで、プラグインのほぼすべてを上書きすることができ、自動的にプラグインのファイルやクラスを上書きします。例えば。プラグインのcom.foo.BarControllerコントローラをオーバーライドするには、(手動で、または元のソースをコピーして変更して)アプリケーションにgrails-app/controllers/com/foo/BarController.groovyを作成します。

+0

素晴らしい、私は完全にそのオプションを認識していませんでした。どうもありがとう! – Trebla

+0

明確にするために、プラグインの機能を上書きする方法ではなく、問題を解決するためにコードをデバッグする場合にのみこのメソッドを使用していました。 – Trebla