67

コード品質チェックにpmdプラグインを使用する大きなMavenプロジェクトがあります。

pmdプラグインを使い始めてから、次の警告メッセージが表示されます。

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

グーグルで検索したところ、jxrプラグインを実装する必要があることがわかりました。

そこで、メインのpom.xmlファイルのbuildプロパティに以下を追加します。

  <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

4 に答える 4

85

セクションにを追加する必要が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>

再実行してお楽しみください。

jxr:jxrところで、 pmdで使用されるファイルを最初に生成するために、目標を1回実行する必要があるかもしれません。

于 2012-08-21T07:50:54.453 に答える
58

追加することで外部参照機能を無効にする機能もあることに注意してください

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

maven-pmd-pluginプラグインに。これにより、追加のレポートプラグインを実行するため、ビルドをさらに長くすることなく警告が解決されます。たとえば、ビルドをJenkinsで実行する場合、Jenkins PMDプラグインがPMD警告をソースコードに関連付けることができます。このために、別のMavenプラグインを実行する必要はありません。

于 2013-08-22T20:43:37.840 に答える
0

次のようにプラグインとして追加された場合は、maven-jxr-pluginを追加し、ライフサイクルのjxr:jxr前に目標を実行する必要があります。sitemaven-jxr-plugin
clean jxr:jxr site

それ以外の場合は、で機能させたい場合はレポートとして追加する必要がありますmvn site。JXRの使用法に関するドキュメントをご覧ください: JXRの使用法

于 2016-09-05T10:07:06.590 に答える
0

この方法で構成する方がはるかに簡単で、サイトフェーズに結び付けないでください。

次に、それはと同じくらい簡単mvn testです。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${maven-surefire-plugin.version}</version>
      <dependencies>
        <dependency>
          <groupId>org.junit.platform</groupId>
          <artifactId>junit-platform-surefire-provider</artifactId>
          <version>1.2.0</version>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <version>${junit.jupiter.version}</version>
        </dependency>
      </dependencies>
      <configuration>
      <testSourceDirectory>src/test/java</testSourceDirectory>
      <includes>
        <include>com.whatever.suite.*</include>
      </includes>
      <systemPropertyVariables>
        <selenide.remote>${grid.hub}</selenide.remote>
      </systemPropertyVariables>
      <trimStackTrace>false</trimStackTrace>
    </configuration>
  </plugin>
  <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>
    <executions>
      <execution>
        <id>during-tests</id>
        <phase>test</phase>
        <goals>
          <goal>report</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
于 2020-05-16T01:53:11.507 に答える