无法找到要链接到的源XRef

ufk*_*ufk 58 java pmd maven-3 maven

我有一个使用pmd插件进行代码质量检查的大型maven项目.

自从我开始使用pmd插件后,我收到以下警告消息:

[WARNING] Unable to locate Source XRef to link to - DISABLED
Run Code Online (Sandbox Code Playgroud)

我用Google搜索,发现我需要实现jxr插件.

所以我将以下内容添加到主pom.xml文件中的build属性中.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jxr-plugin</artifactId>
    <version>2.3</version>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

它真的没有改变任何东西.

我需要实现什么才能解决此警告消息?

输出 mvn -version

Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200)
Maven home: /usr/share/maven-bin-3.0
Java version: 1.7.0_05, vendor: Oracle Corporation
Java home: /usr/lib64/icedtea7/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.5.2-gentoo", arch: "amd64", family: "unix"
Run Code Online (Sandbox Code Playgroud)

谢谢!

pou*_*sma 70

您应该添加maven-jxr-plugin到该reportingPlugin部分.

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>2.3</version>
        </plugin>
    </plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)

重新运行并享受.

顺便说一句,也许你需要运行一次jxr:jxr目标才能首先生成一些将由pmd使用的文件.

  • 这个好的插件有什么好处? (7认同)
  • 好吧..我在<reporting> <plugins>下添加该插件,似乎解决了这个问题.谢谢! (3认同)
  • 截至 2020 年 10 月 26 日,JXR Maven 插件的当前版本为 3.0.0,请参阅 https://maven.apache.org/jxr/maven-jxr-plugin/ 不要盲目地将 SO 中的内容复制并粘贴到您的项目中 (2认同)

rec*_*rec 43

请注意,还可以通过添加来禁用外部参照功能

<configuration>
  <linkXRef>false</linkXRef>
</configuration>
Run Code Online (Sandbox Code Playgroud)

到maven-pmd-plugin插件.由于运行了额外的报告插件,这可以解决警告而不会使构建更长时间.例如,如果您在Jenkins中运行构建,Jenkins PMD插件可以处理将PMD警告与源代码相关联,则无需为此运行另一个Maven插件.

  • 添加&lt;properties&gt; &lt;linkXRef&gt; false &lt;/ linkXRef&gt; &lt;/ properties&gt;也会消除该警告。 (2认同)