我正在尝试在多模块项目中使用Maven Checkstyle插件。
<sourceDirectories>
(开始查找代码的插件)的默认设置为${project.compileSourceRoots}
。在我的情况下,这会解析为[C:\workspace\projectname\src\main\java]
,即List<String>
。
现在,这个默认路径对我没用,因为我的代码位于不同的地方,如:[C:\workspaces\projectname\module1\src\main\java]
。因此,我需要将<sourceDirectories>
更改为我的代码实际所在的目录列表。
到目前为止,非常好......
问题在于<sourceDirectories>
需要List<String>
。我尝试了以下方法:
<sourceDirectories>
<sourceDirectory>pathToCode1</sourceDirectory>
<sourceDirectory>pathToCode2</sourceDirectory>
</sourceDirectories>
......但那没用。它将采用默认路径。 (此外,<sourceDirectory>
已被弃用!)
只有一个 <sourceDirectory>
(没有周围的<sourceDirectories>
)确实有效,但<sourceDirectory>
只需要一条路径而且您不能拥有多条路径<sourceDirectory>
。所以,没有雪茄。另请注意,{@ 1}}已被弃用。
我还尝试过提供<sourceDirectory>
到List<String>
的各种其他方法,但唉,没有进展。以下是一些例子:
<sourceDirectories>
是否有另一种方式(直接,没有“子标签”)向maven提供<sourceDirectories>[pathToCode]</sourceDirectories>
<sourceDirectories>pathToCode</sourceDirectories>
<sourceDirectories>{pathToCode}</sourceDirectories>
<sourceDirectories>{[pathToCode]}</sourceDirectories>
<sourceDirectories>{{pathToCode}}</sourceDirectories>
<sourceDirectories>{{{pathToCode}}}</sourceDirectories>
?
插件坏了吗?
我错过了什么吗?
编辑
我的项目结构:
List<String>
我的父母pom
MyProject
|-- pom.xml <-- plugin runs fine here
|-- domain-module
| |-- src
| | `-- main
| | `-- com/example/hello...
| | |-- TheCode.java
| | `-- resources
| | |-- checkstyle.xml
| | `-- LICENSE.TXT
| `-- pom.xml
|-- poms
| |-- parent
| | `-- pom.xml <-- this is my parent pom
答案 0 :(得分:0)
从版本2.13开始,sourceDirectories的使用被破坏(https://issues.apache.org/jira/browse/MCHECKSTYLE-260)。
2.12可行。安德烈亚斯丹格尔在吉拉提到:
此处描述的配置 Checkstyle - Exclude folder 仍然有效。然后排除发生在checkstyle中,而不是在 行家-CheckStyle的的插件。