Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用maven传递java编译器参数_Java_Maven_Plugins - Fatal编程技术网

无法使用maven传递java编译器参数

无法使用maven传递java编译器参数,java,maven,plugins,Java,Maven,Plugins,正如标题所说,我无法使用maven将命令行参数传递给java编译器,我正在使用来传递,因此(特别是对于插件的compilerArgs选项),我正在使用“最新方式”来指定传递给编译器的参数。这是我的maven插件配置,我不确定我做错了什么: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>

正如标题所说,我无法使用maven将命令行参数传递给java编译器,我正在使用来传递,因此(特别是对于插件的compilerArgs选项),我正在使用“最新方式”来指定传递给编译器的参数。这是我的maven插件配置,我不确定我做错了什么:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <fork>true</fork>
                <compilerArgs>
                    <arg>-parameters</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>
以及:

-参数

请注意,你必须在开始之前写一封“-”字母 参数

在下面,您可以看到插件的配置和一些示例 编译器参数

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <fork>true</fork>
                <compilerArgs>
                    <arg>-verbose</arg>
                    <arg>-Xlint:all,-options,-path</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven编译器插件
3.3
1.8
1.8
真的
-冗长的
-Xlint:all,-选项,-路径
来自:

编译器插件用于编译项目的源代码。从3.0开始,默认编译器是javax.tools.JavaCompiler(如果您使用的是java 1.6),用于编译java源代码。如果要使用javac强制插件,必须配置插件选项forceJavacCompilerUse

我猜
javax.tools.JavaCompiler
javac
-parameters
选项的工作方式不同

尝试强制
javac
使用

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <fork>true</fork>
            <compilerArgs>
                <arg>-parameters</arg>
            </compilerArgs>
        </configuration>
    </plugin>
</plugins>
</build>

org.apache.maven.plugins
maven编译器插件
3.3
1.8
1.8
真的
真的
-参数

PFFF的家伙们忘了它,很抱歉打扰你:(

我的错误:我在前面创建了代码来修改我的pom文件,并使用MAVEN运行它来检查它是否实际工作,之后,我修改了我的pom以包含
-parameters
标志,以便在我的方法中打印我的参数名称,以查看它是否实际工作e代码已经编译过一次,没有设置标记,代码在之后从未被修改过,因此maven“说”这个文件没有变化,我不需要重新编译,我只使用以前编译过的代码(这通常是一件好事,它缩短了编译时间)但在本例中不是这样,因为-parameters标志以一种“fat类”的方式编译代码(或者至少更重,因为它包含参数的名称),但maven不知道这一点


解决方案执行mvn清理或删除已编译的类或删除/target文件夹(总之,做任何必要的事情以确保再次编译文件)

不,我已经尝试过了,但不起作用,我尝试过很多变体,什么都没有:(看这里,你可以看到你必须使用依赖解析来让它工作,你能详细说明一下如何做到这一点吗?因为我看到的是编译阶段(我显然正在执行)的“自动附加”,我也这么认为,但我在使用“本机”时找不到区别编译器你有没有试过在没有maven的情况下编译,看看这个选项是否有效?那么,这个呢?
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <fork>true</fork>
                <compilerArgs>
                    <arg>-verbose</arg>
                    <arg>-Xlint:all,-options,-path</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>
<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <fork>true</fork>
            <compilerArgs>
                <arg>-parameters</arg>
            </compilerArgs>
        </configuration>
    </plugin>
</plugins>
</build>