1

我有一个使用 maven-compiler-plugin 的 Maven webapp。几天前,我可以很好地编译和运行该应用程序,但是发生了一些事情,现在编译失败并出现以下错误:

[ERROR] Failure executing javac, but could not parse the error:
javac: -endorseddirs requires an argument
Usage: javac <options> <source files>

它与编译器有关,但我无法理解。这是我的 pom.xml(只是插件):

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>

            </executions>
        </plugin>
    </plugins>

我已经尝试过一些这样的解决方案

4

2 回答 2

1

据我所知,${endorsed.dir}不是标准的 Maven 属性。您是否从某个地方复制了此示例而没有替换${endorsed.dir}为实际值?或者您是否在您的其他地方定义了这个值,pom.xml但它已被删除?

如果是这种情况,Maven 会将字段视为空白,我可以想象编译器不会收到参数的任何-endorseddirs参数。

于 2012-09-03T07:47:19.790 回答
0

Java 编译器无法${endorsed.dir}在您的 POM 中找到属性,请确保它已在您的 POM 中定义。通过 来检查 POM 的配置mvn help:effective-pom,这将在考虑所有配置后显示实际的 POM。

于 2012-09-03T12:03:04.030 回答