Maven 2 plugin fails with cannot find symbol exception when defining two locations for source files

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

症状

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

C:\source\location\target\clover\src-test\com\acme\SomeClass.java:[11,35] cannot find symbol
symbol: class SomeClass

You have a Maven project that compiles and installs just fine, but when run with the Clover goals on it fails with the above error. The project is set up a little bit different, as the source is in two folders, for example: src/main/java/core, and src/main/java/gen. The maven-compiler-plugin is configured to handle this as below:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <includes>
      <include>core/**</include>
      <include>gen/**</include>
    </includes>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>

原因

Clover does not understand the above definition of source roots.

 

ソリューション

Maven's best practice is to use the build-helper-maven-plugin to add alternate source directories, instead of using <includes> in the maven-compiler-plugin.

Please remove the <includes> from the maven-compiler-plugin and add the following definition to your pom.xml:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>1.1</version>
  <executions>
    <execution>
      <id>add-source</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>add-source</goal>
      </goals>
      <configuration>
        <sources>
          <source>src/java/core</source>
          <source>src/java/gen</source>
        </sources>
      </configuration>
    </execution>
  </executions>
</plugin>

 

 

最終更新日 2014 年 4 月 10 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.