我查看cxf源代码并尝试使用“import as maven project”将项目导入eclipse。
然后我得到错误:无法找到该类org.apache.cxf.pmd.UnsafeStringConstructorRule 来自m2e。
所以看起来cxf在那里定义了一个规则而pmd插件找不到它。 有什么想法吗?
答案 0 :(得分:3)
关于Apache CXF parent pom,它提到profile
名为m2eclipse
的{{1}}定义了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>
我希望这可能有所帮助。