无法定位到源XRef以链接

72

我有一个使用PMD插件进行代码质量检查的大型Maven项目。

自从我开始使用PMD插件后,我收到了以下警告信息:

[WARNING] Unable to locate Source XRef to link to - DISABLED

我谷歌搜索后发现需要实现JXR插件。

因此,我将以下内容添加到主要的pom.xml文件中。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jxr-plugin</artifactId>
    <version>2.3</version>
  </plugin>

它并没有真正改变任何东西。

有什么想法可以解决这个警告信息吗?

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"

谢谢!

4个回答

93

你应该将maven-jxr-plugin添加到reportingPlugin部分。

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>3.3.0</version>
        </plugin>
    </plugins>
</reporting>

重新运行并享受。

顺便说一下,也许你需要先运行jxr:jxr目标一次,以生成一些文件供pmd使用。


3
好的,我将在<reporting><plugins>下添加该插件,看起来它解决了问题。谢谢! - ufk
1
除了公开项目源代码,您可能还知道此插件的其他用途吗? - srk
3
截至2020年10月26日,JXR Maven插件的当前版本为3.0.0,请参见https://maven.apache.org/jxr/maven-jxr-plugin/。请勿从SO盲目地复制粘贴内容到您的项目中。 - user1053510

67

请注意,还可以通过添加代码来禁用xref功能。

<configuration>
  <linkXRef>false</linkXRef>
</configuration>

对于maven-pmd-plugin插件,使用Jenkins PMD插件可以将PMD警告与源代码相关联,而无需运行其他Maven插件,以此消除警告而不使构建时间更长。


9
添加<properties><linkXRef>false</linkXRef></properties>也将消除警告。 - Marcin Kłopotek

1

如果像您的情况一样将 maven-jxr-plugin 添加为插件,则应添加 maven-jxr-plugin 并在 site 生命周期之前运行 jxr:jxr 目标:
clean jxr:jxr site

否则,如果您希望它与 mvn site 一起使用,则应将其添加为报告。请查看 JXR 使用文档: JXR Usage


0

这种方式配置起来更容易,不需要将其绑定到站点阶段。

然后,只需要简单地执行 mvn test 命令。

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>${maven-surefire-plugin.version}</version>
    <configuration>
      <outputDirectory>target/surefire-reports</outputDirectory>
      <linkXRef>false</linkXRef>
    </configuration>
  </plugin>
</plugins>

你的意图是使用 <linkXRef>false</linkXRef> 吗? - Ondra Žižka
哪个插件部分?构建插件? - ggb667

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接