使用m2e将cxf项目导入eclipse时出错:无法找到该类org.apache.cxf.pmd.UnsafeStringConstructorRule

时间:2013-04-18 14:07:58

标签: eclipse maven cxf m2e pmd

我查看cxf源代码并尝试使用“import as maven project”将项目导入eclipse。

然后我得到错误:无法找到该类org.apache.cxf.pmd.UnsafeStringConstructorRule 来自m2e。

所以看起来cxf在那里定义了一个规则而pmd插件找不到它。 有什么想法吗?

1 个答案:

答案 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>

我希望这可能有所帮助。