当前位置: 首页 > 知识库问答 >
问题:

无法在intellij中使用gradle获得检查样式

周和歌
2023-03-14

我有以下支票样式。我的项目的confg/checkstyle目录中的xml文件。我正在使用gradle(v3.4),下面复制了它的相关部分,以及运行gradle build时收到的错误消息(rootDir尚未设置)。如何将rootDir传递给checkstyle插件?

错误

Execution failed for task ':checkstyleMain'.
> Unable to create a Checker: unable to read /abc/def/ghi/jkl/config/checkstyle/checkstyle.xml - unable to parse configuration stream - Property ${rootDir} has not been set

建筑格拉德尔

apply plugin: 'checkstyle'

//tried with and without the below
checkstyle {  
    ignoreFailures = true
    configFile = file("config/checkstyle/checkstyle.xml")
}

检查样式。xml

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
        "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
        "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!--
    Checkstyle configuration that checks the Google coding conventions from Google Java Style
    that can be found at https://google.github.io/styleguide/javaguide.html.

    Checkstyle is very configurable. Be sure to read the documentation at
    http://checkstyle.sf.net (or in your downloaded distribution).

    To completely disable a check, just comment it out or delete it from the file.

    Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
 -->

<module name = "Checker">
    <property name="charset" value="UTF-8"/>

    <property name="severity" value="error"/>

    <module name="Header">
        <property name="headerFile" value="${rootDir}/checkstyle.license"/>
        <property name="ignoreLines" value="2"/>
        <property name="fileExtensions" value="java"/>
    </module>

    <property name="fileExtensions" value="java, properties, xml"/>
    <!-- Checks for whitespace                               -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="FileTabCharacter">
        <property name="eachLine" value="true"/>
    </module>

    <module name="TreeWalker">
        <module name="OuterTypeFilename"/>
        <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format" value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
        </module>
        <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <property name="allowByTailComment" value="true"/>
            <property name="allowNonPrintableEscapes" value="true"/>
        </module>
        <module name="LineLength">
            <property name="max" value="100"/>
            <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
        </module>
        <module name="AvoidStarImport"/>
        <!-- TODO(ejona): Upstream? -->
        <module name="UnusedImports"/>
        <module name="OneTopLevelClass"/>
        <module name="NoLineWrap"/>
        <module name="EmptyBlock">
            <property name="option" value="TEXT"/>
            <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
        </module>
        <module name="NeedBraces"/>
        <module name="LeftCurly">
            <property name="maxLineLength" value="100"/>
        </module>
        <module name="RightCurly"/>
        <module name="RightCurly">
            <property name="option" value="alone"/>
            <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
        </module>
        <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="allowEmptyTypes" value="true"/>
            <property name="allowEmptyLoops" value="true"/>
            <message key="ws.notFollowed"
                     value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
            <message key="ws.notPreceded"
                     value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="OneStatementPerLine"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="ArrayTypeStyle"/>
        <module name="MissingSwitchDefault"/>
        <module name="FallThrough"/>
        <module name="UpperEll"/>
        <module name="ModifierOrder"/>
        <module name="EmptyLineSeparator">
            <property name="allowNoEmptyLineBetweenFields" value="true"/>
        </module>
        <module name="SeparatorWrap">
            <property name="tokens" value="DOT"/>
            <property name="option" value="nl"/>
        </module>
        <module name="SeparatorWrap">
            <property name="tokens" value="COMMA"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
            <message key="name.invalidPattern"
                     value="Package name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="TypeName">
            <message key="name.invalidPattern"
                     value="Type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MemberName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern"
                     value="Member name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ParameterName">
            <!-- TODO(ejona): too strict, as one-character parameter names are permitted
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/-->
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern"
                     value="Parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="CatchParameterName">
            <!-- TODO(ejona): too strict, as one-character parameter names are permitted.
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/-->
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern"
                     value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="LocalVariableName">
            <property name="tokens" value="VARIABLE_DEF"/>
            <!-- TODO(ejona): too strict, as one-character parameter names are permitted.
                 Add support for Unicode.
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/-->
            <property name="format" value="^[^A-Z]"/>
            <property name="allowOneCharVarInForLoop" value="true"/>
            <message key="name.invalidPattern"
                     value="Local variable name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ClassTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Class type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MethodTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Method type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="InterfaceTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Interface type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="NoFinalizer"/>
        <module name="GenericWhitespace">
            <message key="ws.followed"
                     value="GenericWhitespace ''{0}'' is followed by whitespace."/>
            <message key="ws.preceded"
                     value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
            <message key="ws.illegalFollow"
                     value="GenericWhitespace ''{0}'' should followed by whitespace."/>
            <message key="ws.notPreceded"
                     value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="Indentation">
            <property name="basicOffset" value="2"/>
            <property name="braceAdjustment" value="0"/>
            <property name="caseIndent" value="2"/>
            <property name="throwsIndent" value="4"/>
            <property name="lineWrappingIndentation" value="4"/>
            <property name="arrayInitIndent" value="2"/>
        </module>
        <module name="AbbreviationAsWordInName">
            <property name="ignoreFinal" value="false"/>
            <property name="allowedAbbreviationLength" value="1"/>
        </module>
        <module name="OverloadMethodsDeclarationOrder"/>
        <!-- TODO(ejona): Does not consider assignment during declaration as a usage.
        <module name="VariableDeclarationUsageDistance"/-->
        <module name="CustomImportOrder">
            <property name="specialImportsRegExp" value="com.google"/>
            <property name="sortImportsInGroupAlphabetically" value="true"/>
            <property name="customImportOrderRules" value="STATIC###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE"/>
        </module>
        <module name="MethodParamPad"/>
        <module name="OperatorWrap">
            <property name="option" value="NL"/>
            <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
        </module>
        <module name="AnnotationLocation">
            <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
        </module>
        <module name="AnnotationLocation">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="allowSamelineMultipleAnnotations" value="true"/>
        </module>
        <module name="NonEmptyAtclauseDescription"/>
        <module name="JavadocTagContinuationIndentation"/>
        <module name="SummaryJavadoc">
            <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
        </module>
        <module name="JavadocParagraph"/>
        <module name="AtclauseOrder">
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
            <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        <module name="JavadocMethod">
            <property name="scope" value="public"/>
            <property name="allowMissingParamTags" value="true"/>
            <property name="allowMissingThrowsTags" value="true"/>
            <property name="allowMissingReturnTag" value="true"/>
            <property name="minLineCount" value="2"/>
            <!-- TOOD(ejona): Too restrictive for tests
            <property name="allowedAnnotations" value="Override, Test"/-->
            <property name="allowedAnnotations" value="Override, Test, Before, After, BeforeClass, AfterClass, Setup, TearDown"/>
            <property name="allowThrowsTagsForSubclasses" value="true"/>
        </module>
        <module name="MethodName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
            <message key="name.invalidPattern"
                     value="Method name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="SingleLineJavadoc">
            <!-- TODO(ejona): Based on mis-reading of style; consider upstreaming
            <property name="ignoreInlineTags" value="false"/-->
        </module>
        <module name="EmptyCatchBlock">
            <property name="exceptionVariableName" value="expected"/>
        </module>
        <module name="CommentsIndentation"/>
    </module>
</module>

共有1个答案

宿文栋
2023-03-14

我只是简单地替换了支票样式。xml文件(不需要在xml文件中使用rootDir。现在运行gradle build可以很好地使用checkstyle。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!-- This is a checkstyle configuration file. For descriptions of
what the following rules do, please see the checkstyle configuration
page at http://checkstyle.sourceforge.net/config.html -->

<module name="Checker">

  <module name="FileTabCharacter">
    <!-- Checks that there are no tab characters in the file.
    -->
  </module>

  <module name="NewlineAtEndOfFile">
    <property name="lineSeparator" value="lf"/>
  </module>

  <module name="RegexpSingleline">
    <!-- Checks that FIXME is not used in comments.  TODO is preferred.
    -->
    <property name="format" value="((//.*)|(\*.*))FIXME" />
    <property name="message" value='TODO is preferred to FIXME.  e.g. "TODO(johndoe): Refactor when v2 is released."' />
  </module>

  <module name="RegexpSingleline">
    <!-- Checks that TODOs are named.  (Actually, just that they are followed
         by an open paren.)
    -->
    <property name="format" value="((//.*)|(\*.*))TODO[^(]" />
    <property name="message" value='All TODOs should be named.  e.g. "TODO(johndoe): Refactor when v2 is released."' />
  </module>

  <module name="JavadocPackage">
    <!-- Checks that each Java package has a Javadoc file used for commenting.
      Only allows a package-info.java, not package.html. -->
  </module>

  <!-- All Java AST specific tests live under TreeWalker module. -->
  <module name="TreeWalker">

    <!--
    IMPORT CHECKS
    -->

    <module name="RedundantImport">
      <!-- Checks for redundant import statements. -->
      <property name="severity" value="error"/>
    </module>

    <module name="ImportOrder">
      <!-- Checks for out of order import statements. -->

      <property name="severity" value="warning"/>
      <property name="groups" value="com.google,android,junit,net,org,java,javax"/>
      <!-- This ensures that static imports go first. -->
      <property name="option" value="top"/>
      <property name="tokens" value="STATIC_IMPORT, IMPORT"/>
    </module>

    <!--
    JAVADOC CHECKS
    -->

    <!-- Checks for Javadoc comments.                     -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html -->
    <module name="JavadocMethod">
      <property name="scope" value="protected"/>
      <property name="severity" value="warning"/>
      <property name="allowMissingJavadoc" value="true"/>
      <property name="allowMissingParamTags" value="true"/>
      <property name="allowMissingReturnTag" value="true"/>
      <property name="allowMissingThrowsTags" value="true"/>
      <property name="allowThrowsTagsForSubclasses" value="true"/>
      <property name="allowUndeclaredRTE" value="true"/>
    </module>

    <module name="JavadocType">
      <property name="scope" value="protected"/>
      <property name="severity" value="error"/>
    </module>

    <module name="JavadocStyle">
      <property name="severity" value="warning"/>
    </module>

    <!--
    NAMING CHECKS
    -->

    <!-- Item 38 - Adhere to generally accepted naming conventions -->

    <module name="PackageName">
      <!-- Validates identifiers for package names against the
        supplied expression. -->
      <!-- Here the default checkstyle rule restricts package name parts to
        seven characters, this is not in line with common practice at Google.
      -->
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="TypeNameCheck">
      <!-- Validates static, final fields against the
      expression "^[A-Z][a-zA-Z0-9]*$". -->
      <metadata name="altname" value="TypeName"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="ConstantNameCheck">
      <!-- Validates non-private, static, final fields against the supplied
      public/package final fields "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$". -->
      <metadata name="altname" value="ConstantName"/>
      <property name="applyToPublic" value="true"/>
      <property name="applyToProtected" value="true"/>
      <property name="applyToPackage" value="true"/>
      <property name="applyToPrivate" value="false"/>
      <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|FLAG_.*)$"/>
      <message key="name.invalidPattern"
               value="Variable ''{0}'' should be in ALL_CAPS (if it is a constant) or be private (otherwise)."/>
      <property name="severity" value="warning"/>
    </module>

    <module name="StaticVariableNameCheck">
      <!-- Validates static, non-final fields against the supplied
      expression "^[a-z][a-zA-Z0-9]*_?$". -->
      <metadata name="altname" value="StaticVariableName"/>
      <property name="applyToPublic" value="true"/>
      <property name="applyToProtected" value="true"/>
      <property name="applyToPackage" value="true"/>
      <property name="applyToPrivate" value="true"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*_?$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="MemberNameCheck">
      <!-- Validates non-static members against the supplied expression. -->
      <metadata name="altname" value="MemberName"/>
      <property name="applyToPublic" value="true"/>
      <property name="applyToProtected" value="true"/>
      <property name="applyToPackage" value="true"/>
      <property name="applyToPrivate" value="true"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="MethodNameCheck">
      <!-- Validates identifiers for method names. -->
      <metadata name="altname" value="MethodName"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="ParameterName">
      <!-- Validates identifiers for method parameters against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>

    <module name="LocalFinalVariableName">
      <!-- Validates identifiers for local final variables against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>

    <module name="LocalVariableName">
      <!-- Validates identifiers for local variables against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>


    <!--
    LENGTH and CODING CHECKS
    -->

    <module name="LineLength">
      <!-- Checks if a line is too long. -->
      <property name="max" value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.max}" default="100"/>
      <property name="severity" value="error"/>

      <!--
        The default ignore pattern exempts the following elements:
          - import statements
          - long URLs inside comments
      -->

      <property name="ignorePattern"
          value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.ignorePattern}"
          default="^(package .*;\s*)|(import .*;\s*)|( *(\*|//).*https?://.*)$"/>
    </module>

    <module name="LeftCurly">
      <!-- Checks for placement of the left curly brace ('{'). -->
      <property name="severity" value="warning"/>
    </module>

    <module name="RightCurly">
      <!-- Checks right curlies on CATCH, ELSE, and TRY blocks are on
      the same line. e.g., the following example is fine:
      <pre>
        if {
          ...
        } else
      </pre>
      -->
      <!-- This next example is not fine:
      <pre>
        if {
          ...
        }
        else
      </pre>
      -->
      <property name="option" value="same"/>
      <property name="severity" value="warning"/>
    </module>

    <!-- Checks for braces around if and else blocks -->
    <module name="NeedBraces">
      <property name="severity" value="warning"/>
      <property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
    </module>

    <module name="UpperEll">
      <!-- Checks that long constants are defined with an upper ell.-->
      <property name="severity" value="error"/>
    </module>

    <module name="FallThrough">
      <!-- Warn about falling through to the next case statement.  Similar to
      javac -Xlint:fallthrough, but the check is suppressed if a single-line comment
      on the last non-blank line preceding the fallen-into case contains 'fall through' (or
      some other variants which we don't publicized to promote consistency).
      -->
      <property name="reliefPattern"
       value="fall through|Fall through|fallthru|Fallthru|falls through|Falls through|fallthrough|Fallthrough|No break|NO break|no break|continue on"/>
      <property name="severity" value="error"/>
    </module>


    <!--
    MODIFIERS CHECKS
    -->

    <module name="ModifierOrder">
      <!-- Warn if modifier order is inconsistent with JLS3 8.1.1, 8.3.1, and
           8.4.3.  The prescribed order is:
           public, protected, private, abstract, static, final, transient, volatile,
           synchronized, native, strictfp
        -->
    </module>


    <!--
    WHITESPACE CHECKS
    -->

    <module name="WhitespaceAround">
      <!-- Checks that various tokens are surrounded by whitespace.
           This includes most binary operators and keywords followed
           by regular or curly braces.
      -->
      <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,
        BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN,
        EQUAL, GE, GT, LAND, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
        LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
        LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS,
        MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION,
        SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN"/>
      <property name="severity" value="error"/>
    </module>

    <module name="WhitespaceAfter">
      <!-- Checks that commas, semicolons and typecasts are followed by
           whitespace.
      -->
      <property name="tokens" value="COMMA, SEMI, TYPECAST"/>
    </module>

    <module name="NoWhitespaceAfter">
      <!-- Checks that there is no whitespace after various unary operators.
           Linebreaks are allowed.
      -->
      <property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
        UNARY_PLUS"/>
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="error"/>
    </module>

    <module name="NoWhitespaceBefore">
      <!-- Checks that there is no whitespace before various unary operators.
           Linebreaks are allowed.
      -->
      <property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="error"/>
    </module>

    <module name="ParenPad">
      <!-- Checks that there is no whitespace before close parens or after
           open parens.
      -->
      <property name="severity" value="warning"/>
    </module>

  </module>
</module>
 类似资料:
  • 我是IntelliJ和Gradle的新手,但我在Java和Eclipse方面有足够的经验。我从wsdl文件生成了一些java类。我将它们放在带有文件夹名称下 - “生成的源”。 我试图阻止此文件夹及其子文件夹的checkstyle,例如,并在IntelliJ上使用gradle。 我尝试了一些线路; 但我又失败了。 build.gradle; 编辑-在推荐之后(但仍然失败!): tasks.with

  • 我使用gradle jar命令构建项目,然后尝试使用java-jar myproject.jar命令启动应用程序 我的建筑。加德尔:

  • 我试着把我的主类移到一个不扩展Application的单独的类中,这就是导致上述错误的原因。如果不移动我的主类,我会得到一个不同的错误。 My Build.Gradle当前看起来如下所示: 如果我让我的main方法扩展应用程序,那么我会得到一个错误,说明找不到我的main类,尽管我可以看到它存在于生成的.jar文件中。 编辑 我试过指南的模块化部分。这样做,我有超过100个错误时,试图建立。它们都

  • 问题内容: 即使从IntelliJ IDEA内部进行成绩构建,也不会将依赖项放入“外部库”文件夹中,因此这些类不会在编辑器中显示为建议,当我手动将其作为导入添加时,会出现编译错误。 如何使IntelliJ自动将依赖项合并到我的 build.gradle 文件中,例如: 问题答案: 您要么需要从Idea中将项目作为Gradle项目导入。添加依赖项时,需要打开Gradle窗口并执行刷新。 或者使用以下

  • 问题内容: 我有线程池,它将带一个工作线程。我需要获得此Callable任务,但无法获得它。 在下面的示例中,我需要为RejectionHandler执行的Callable任务的uniqueId。在中,浇铸,我希望它应该被强制转换为工作线程。 请帮助我获取中的Worker线程实例。 输出量 我期待CallableWorkerThread而不是FutureTask。帮助我获取WorkerThread

  • 实际上,我希望从IntelliJ导出代码样式设置(默认的设置很好),并在CheckStyle中使用它们。(它是用于maven构建验证的,这种东西已经设置好了,但我们希望使用IntelliJ的代码风格,而不是Sun或Googles的代码风格) 第一步应该是导出IntelliJ代码样式。似乎说起来容易做起来难。 现在,我知道在SO和其他地方都有很多关于这个的材料,但我根本找不到代码样式的xml文件,甚