2

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

然后我收到错误消息:无法从 m2e 中找到该类 org.apache.cxf.pmd.UnsafeStringConstructorRule。

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

4

1 回答 1

3

关于Apache CXF 父 pom,它提到了profile命名,其m2eclipse定义如下: -maven-pmd-pluginthe 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>

我希望这可能会有所帮助。

于 2013-04-23T11:20:40.110 回答