gpt4 book ai didi

maven - 我可以将 checkstyle 的导入控制文件捆绑到使用我们的 checkstyle 的所有项目中吗?

转载 作者:行者123 更新时间:2023-12-04 22:49:30 26 4
gpt4 key购买 nike

我正在尝试将 import-control 添加到我们的 checkstyle 中,使 import-control 文件存在于制作 checstyle.xml 文件的项目中,而不是我们稍后构建的项目中。

我们有一个特定的 gradle 项目,我们在其中定义了所有规则,并且在这个项目中我们的 import-control.xml。我的问题是,当我尝试在另一个使用此检查样式的项目上运行 mvn clean install 时,它会尝试在该项目中找到 import-control.xml。

我在 checkstyle.xml 中做了以下配置:

        <module name="ImportControl">
<property name="file" value="import-control.xml"/>
</module>

并且 import-control.xml 放在 checkstyle.xml 旁边。

谁能告诉我我需要做什么,以便我可以告诉 maven 这个文件存在于我们的 checkstyle 项目中,而不是正在构建的根项目中?

我得到的错误是:
无法初始化模块 TreeWalker - 无法初始化模块 ImportControl - 属性"file"的非法值“import-control.xml”无法找到:import-control.xml

在 2.17 版中

无法加载 import-control.xml:找不到文件:/C://import-control.xml:\import-control.xml

我试过的:
将 checkstyle 版本升级到 3.1.0(我们曾经有 2.17)
使用 import-control.xml 但没有用。
试图阅读文档和代码,但没有帮助。

谢谢你的帮助

稍后给你写信/Mårten

mvn配置:
      <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>do checkstyle</id>
<phase>process-sources</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>projectA/**/*</includes>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failOnViolation>false</failOnViolation>
<failsOnError>true</failsOnError>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>company.checkstyle</groupId>
<artifactId>company-checkstyle</artifactId>
<version>0.2-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>```

最佳答案

再次感谢 barfuin,看起来 ${config_loc} 是答案,但我们还需要做一件事才能让它充分发挥作用。

所以,为了从 checkstyle 项目中添加资源,就像在这个文件中的 import_control.xml 一样,我在我的 checkstyle.xml 中执行了以下操作:

    <module name="ImportControl">
<property name="file" value="${config_loc}/config/import_control.xml"/>
</module>

我还需要做的是添加:
<propertyExpansion>config_loc=</propertyExpansion>

在我的 pom.xml 配置中,这解决了 config_loc 未定义和 checkstyle 将文件作为资源查找的问题,并为我提供了以下 pom.xml 配置:
    <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>do checkstyle</id>
<phase>process-sources</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>projectA/**/*</includes>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failOnViolation>false</failOnViolation>
<failsOnError>true</failsOnError>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<propertyExpansion>config_loc=</propertyExpansion>
</configuration>
<dependencies>
<dependency>
<groupId>company.checkstyle</groupId>
<artifactId>company-checkstyle</artifactId>
<version>0.2-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>

关于maven - 我可以将 checkstyle 的导入控制文件捆绑到使用我们的 checkstyle 的所有项目中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com