如何从Maven动物嗅探器插件中找到错误的来源?

时间:2013-09-16 06:14:01

标签: java maven

从我的pom.xml配置Maven动物嗅探器插件:

<properties>
    <animal-sniffer-maven-plugin.version>1.9</animal-sniffer-maven-plugin.version>
</properties>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>animal-sniffer-maven-plugin</artifactId>
    <version>${animal-sniffer-maven-plugin.version}</version>
    <configuration>
        <signature>
            <groupId>org.codehaus.mojo.signature</groupId>
            <artifactId>java16-sun</artifactId>
            <version>1.0</version>
        </signature>
    </configuration>
    <executions>
        <execution>
            <id>check-java16-sun</id>
            <phase>test</phase>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

(这是借用了Google Guava的pom.xml

今天,我开始从嗅探器插件中收到错误:

[ERROR] Failed to execute goal org.codehaus.mojo:animal-sniffer-maven-plugin:1.9:check (check-java16-sun) on project Optimus:
Execution check-java16-sun of goal org.codehaus.mojo:animal-sniffer-maven-plugin:1.9:check failed:
An API incompatibility was encountered while executing org.codehaus.mojo:animal-sniffer-maven-plugin:1.9:check:
java.lang.NoSuchMethodError: java.nio.CharBuffer.subSequence(II)Ljava/nio/CharBuffer;

我没有直接在我的代码中调用CharBuffer.subSequence(...)。它可能来自一个包含的JAR。我怎样才能找到有问题的班级?

1 个答案:

答案 0 :(得分:3)

建议每当您遇到Maven时遇到问题,请按以下方式运行:

mvn -X clean install

**-X**选项使您可以调试maven。我也遇到了类似的问题,发现依赖项目不是使用Java 6版本构建的。当我使用Java 6构建依赖项目时,它会产生罚款。

因此,由于Java合规性级别而出现此问题。