我检查了 cxf 源代码并尝试使用“import as maven project”将项目导入 eclipse。
然后我收到错误消息:无法从 m2e 中找到该类 org.apache.cxf.pmd.UnsafeStringConstructorRule。
所以看起来 cxf 在那里定义了一个规则,而 pmd 插件没有找到它。有任何想法吗?
关于Apache CXF 父 pom,它提到了profile
命名,其m2eclipse
定义如下: -maven-pmd-plugin
the dependency
<profile>
<id>m2eclipse</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<dependencies>
<dependency>
<groupId>org.apache.cxf.build-utils</groupId>
<artifactId>cxf-buildtools</artifactId>
<version>${cxf.build-utils.version}</version>
</dependency>
</dependencies>
<configuration>
<rulesets>
<ruleset>
${cxf.resources.base.path}cxf-pmd-ruleset.xml
</ruleset>
</rulesets>
<sourceEncoding>UTF-8</sourceEncoding>
<targetJdk>1.6</targetJdk>
<linkXRef>false</linkXRef>
<includeTests>true</includeTests>
<verbose>true</verbose>
<excludeRoots>
<excludeRoot>${basedir}/src/main/generated</excludeRoot>
</excludeRoots>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
您可能会注意到activation
.this profile
下载org.apache.cxf.build-utils:cxf-buildtools:2.5.0:jar
表格Maven Central Repository后,我也找到了这个类org.apache.cxf.pmd.UnsafeStringConstructorRule
。
这可能是您的问题的根本原因。恕我直言,您可以尝试通过缺少某些属性来激活此配置文件,例如
<profile>
<id>m2eclipse</id>
<activation>
<property>
<name>!skipM2E</name>
</property>
</activation>
....
</profile>
我希望这可能会有所帮助。