2015-08-15 4 views
0

Я использую Gradle 2.3 и проект имеет код Groovy. Для статического анализа кода я использую Codenarc (например, папка проекта имеет файл config/codenarc/codenarc.xml).Groovy Codenarc.xml org.xml.sax.SAXParseException xsi: schemaLocation, не связанный с набором правил типа элемента, не связан

В build.gradle/GRADLE_HOME/init.d/топ-level.gradle файл, у меня есть:

apply plugin: 'codenarc' 

    codenarc { 
    ignoreFailures = true 
    configFile = file("config/codenarc/codenarc.xml") 
    } 

Но при составлении этого проекта, я получаю следующее сообщение об ошибке.

13:49:00 :codenarcAcceptanceTest UP-TO-DATE 
13:49:01 :codenarcIntegrationTest FAILED 
13:49:01 
13:49:01 FAILURE: Build failed with an exception. 
13:49:01 
13:49:01 * What went wrong: 
13:49:01 Execution failed for task ':codenarcIntegrationTest'. 
13:49:01 > org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 173; The prefix "xsi" for attribute "xsi:schemaLocation" associated with an element type "ruleset" is not bound. 
13:49:01 
13:49:01 * Try: 
13:49:01 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
13:49:01 
13:49:01 BUILD FAILED 

содержимое файла в codenarc.xml файле являются:

<ruleset xsi:schemaLocation="http://codenarc.org/ruleset/1.0 http://codenarc.org/ruleset-schema.xsd" xsi:noNamespaceSchemaLocation="http://codenarc.org/ruleset-schema.xsd"> 
    <description>Sample rule set</description> 
    <ruleset-ref path="rulesets/basic.xml"/> 
    <ruleset-ref path="rulesets/braces.xml"> 
     <rule-config name="IfStatementBraces"> 
     <property name="priority" value="3"/> 
     </rule-config> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/concurrency.xml"/> 
    <ruleset-ref path="rulesets/convention.xml"/> 
    <ruleset-ref path="rulesets/design.xml"/> 
    <ruleset-ref path="rulesets/dry.xml"> 
     <rule-config name="DuplicateStringLiteral"> 
     <property name="doNotApplyToClassNames" value="*Spec"/> 
     </rule-config> 
     <rule-config name="DuplicateNumberLiteral"> 
     <property name="doNotApplyToClassNames" value="*Spec"/> 
     </rule-config> 
     <rule-config name="DuplicateMapLiteral"> 
     <property name="doNotApplyToClassNames" value="*Spec"/> 
     </rule-config> 
     <rule-config name="DuplicateListLiteral"> 
     <property name="doNotApplyToClassNames" value="*Spec"/> 
     </rule-config> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/exceptions.xml"/> 
    <ruleset-ref path="rulesets/formatting.xml"/> 
    <ruleset-ref path="rulesets/generic.xml"/> 
    <ruleset-ref path="rulesets/grails.xml"/> 
    <ruleset-ref path="rulesets/groovyism.xml"/> 
    <ruleset-ref path="rulesets/imports.xml"> 
     <exclude name="MisorderedStaticImports"/> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/jdbc.xml"/> 
    <ruleset-ref path="rulesets/junit.xml"/> 
    <ruleset-ref path="rulesets/logging.xml"/> 
    <ruleset-ref path="rulesets/naming.xml"> 
     <rule-config name="FieldName"> 
     <property name="ignoreFieldNames" value="log"/> 
     </rule-config> 
     <rule-config name="MethodName"> 
     <property name="doNotApplyToClassNames" value="*Spec"/> 
     </rule-config> 
     <exclude name="FactoryMethodName"/> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/security.xml"> 
     <exclude name="JavaIoPackageAccess"/> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/serialization.xml"/> 
    <ruleset-ref path="rulesets/size.xml"/> 
    <ruleset-ref path="rulesets/unnecessary.xml"> 
     <exclude name="UnnecessaryPackageReference"/> 
    </ruleset-ref> 
    <ruleset-ref path="rulesets/unused.xml"/> 
</ruleset> 

ответ

1

XML-не знал, что xsi это вы должны добавить это в качестве префикса из правильного URL пространства имен. Попробуйте следующий заголовок:

<ruleset xmlns="http://codenarc.org/ruleset/1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://codenarc.org/ruleset/1.0 http://codenarc.org/ruleset-schema.xsd" 
    xsi:noNamespaceSchemaLocation="http://codenarc.org/ruleset-schema.xsd"> 
+0

согласен, сделал то же самое, чтобы исправить. Вот почему я получил эту проблему. Я «случайно» использовал некоторое украшение –

Смежные вопросы