4

grails プラグインのすべてのコントローラー/サービスを一覧表示するにはどうすればよいですか。または、特定の GrailsApplication クラスの pluin 名を知るにはどうすればよいですか。

4

2 に答える 2

11

プラグインからのアーティファクトにはGrailsPlugin、ソースに関するメタデータを追加するための注釈が付けられます。したがって、これを使用して、コントローラー/サービスなどを見つけることができます。このようなアプリケーションまたはプラグインからのものです:

import org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin

for (type in ['controller', 'service']) {

   for (artifactClass in ctx.grailsApplication."${type}Classes") {

      def clazz = artifactClass.clazz

      def annotation = clazz.getAnnotation(GrailsPlugin)
      if (annotation) {
         println "$type $clazz.name from plugin '${annotation.name()}'"
      }
      else {
         println "$type $clazz.name from application"
      }
   }
}
于 2012-08-03T15:31:52.833 に答える
1

新しく作成された Grails アプリケーションでは、grails-app/views/index.gsp に以下が含まれます。

<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
    <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
</g:each>

同様の方法でサービスを受けることができます。

于 2012-08-03T08:53:02.517 に答える