3

インストールして実行した後、grails プロジェクトで使用しようとしてcodeNarcいますが、理解して解決したいルールセット違反メッセージがいくつかあります。1 つ目は「GrailsS​​tatelessService」に関するもので、2 つ目は「equals() および toString()」メソッドに関するものです...

最初の「GrailsS​​tatelessService」について、私が受け取ったメッセージは次のとおりです。

***************************
Violation in class app.TheServiceName. The class is marked as stateless but contains the non-final field 'aVariableName'
***************************

私はそれについて少し検索しましたが、それについて多くのトリックが見つかりませんでした. このルールセットの本当の意味と、この問題を解決するために私がしなければならないことを誰か説明してくれませんか/

2 番目の種類の ruleSet については、すべてのドメイン クラスでこれらのメソッドをオーバーライドすることで解決したことをどこかで見つけましたが、これらのルールセットに関連するそのような種類のメッセージを回避するために、ruleSet ファイルを変更する必要があるか、義務または必要性があります。 ?

そして、それは私の最後の質問を紹介します: このルールセットファイル (codenarc 内のデフォルトのもの) または私が自分自身を含めなければならないものはどこにありますか?

4

5 に答える 5

4

ルールが実際の違反をキャッチすることがあるので、GrailsStatelessServiceルールを無効にするのではなく、一般的に使用されるフィールド名を無視するように変更します。

BuildConfig.groovy:

codenarc.propertiesFile = 'grails-app/conf/codenarc.properties'

codenarc.properties:

GrailsStatelessService.addToIgnoreFieldNames=grailsApplication,applicationContext,sessionFactory
于 2012-02-07T23:21:27.083 に答える
3

この CodeNarc ルールを次のように構成できます。

  1. CodeNarc プラグインをインストールする [ grails install-plugin codenarc ]

  2. BuildConfig.groovyファイルに次の行を追加します [詳細設定用]:

    codenarc.propertiesFile = 'grails-app/conf/codenarc.properties'
    
  3. codenarc.properties - ファイルで、いくつかのルールを無視するための次のルールを追加します

    codenarc.properties = {
    
      GrailsDomainHasEquals.enabled = false
    
      GrailsDomainHasToString.enabled = false
    
      EmptyMethod.enabled = false
    
    }
    
  4. 次のコマンドを実行して、CodeNarc レポートを生成します。grails codenarc

于 2012-12-11T15:40:27.563 に答える
1

ドキュメントは、そのルールをうまく説明しています。

Grailsサービスクラスの非最終フィールドをチェックします。Grailsサービスクラスはデフォルトでシングルトンであるため、再入可能である必要があります。ほとんどの場合、これは、ステートレスであるべきであることを意味します(または少なくとも奨励します)。

このルールは、最終フィールド(インスタンスまたは静的)を無視します。ただし、静的で非最終的なフィールドは違反を引き起こします。

于 2012-02-07T12:36:34.080 に答える
0

Grails CodeNarc プラグインを使用している場合は、デフォルトで含まれているCodeNarcルールセットのリストについて、プラグインのドキュメントを参照してください。「CodeNarc RuleSet ファイルの構成」に関するセクションもあります。そのため、必ず独自のカスタム ルールセットを作成してください。

http://www.grails.org/plugin/codenarc/

チーム/プロジェクトに適した一連のルールをカスタマイズすることが期待されます。「基本的な」ルールセットを除いて、提供されているその他のルールセットにはすべて、適切なルールと不適切なルールが含まれています。

GrailsDomainHasToStringおよびGrailsDomainHasEqualsルールは完璧な例です。多くの組織はこれらのルールを無効にしています

ルールをオフにする方法の詳細については、 CodeNarcのドキュメントを参照してください。

http://codenarc.sourceforge.net/codenarc-configuring-rules.html

于 2012-02-07T18:31:02.967 に答える