当前位置: 首页 > 知识库问答 >
问题:

pom.xml中properties标记中的maven编译器和plugin标记中的maven编译器的区别[duplicate]

申屠俊发
2023-03-14

我试图在pom.xml中将项目源和目标设置为Java1.8,结果发现这两种方法都可以:

>

  • 在属性标记中设置:

    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    

    在插件中配置:

    <build>
    <pluginManagement>
        <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>
        </plugins>
    
    </pluginManagement>
    

    给我一个选择,我更喜欢选项1,因为它更短,但这两个之间的真正区别是什么?

  • 共有1个答案

    邰昀
    2023-03-14

    是等价的。事实上,maven-compiler-plugin的标记使用 属性, 使用 属性:https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html

    因此,如果您只想设置这两个属性,您可以很高兴地使用属性,但plugin更灵活,因为它有很多其他配置可以设置(我见过很多:fork、annotationProcessors、compilerArgs和其他标记)

     类似资料:
    • 当我从Eclipse构建到maven构建时,我发现了项目中的许多问题。我使用2.5.1编译器插件。 JDK是开放的-JDK-7 我在一个新项目中隔离了这个问题,并对其进行了深入研究。问题是: 这无法使用javaC进行编译(但在Eclipse中工作),并说明以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:2.5.1:项目测试时编译(默认编译):编译失败 [错误]/hom

    • 我已经搜索了所有关于为什么我们应该有不同于目标的来源,但不一致的答案: 如果JDK向下兼容,为什么在1.7上编译时需要将目标设置为1.8? 将源设置为高于目标将不起作用,例如错误: 源版本8需要目标版本1.8 同样来自Maven: 仅仅设置target选项并不能保证代码在具有指定版本的JRE上实际运行。陷阱在于无意中使用了只存在于后来的JRE中的API,这会导致代码在运行时出现链接错误 有人能举个

    • 问题内容: 在配置我的时,我必须配置一个插件。我发现标签可以插入或元素内。我很困惑! 和之间有什么区别? 问题答案: 从 Maven文档中: pluginManagement :是在侧面插件中可以看到的元素。插件管理包含插件元素的方式几乎相同,除了不是为该特定项目构建配置插件信息,而是要配置从该继承的项目构建。但是,这仅配置在子级的plugins元素内实际引用的插件。子级有权覆盖pluginMan

    • 我需要编译我的项目,但它在我的pom.xml中失败了。第一个错误是: 生命周期配置不包括的插件执行:org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile(执行:default-compile,phase:compile) 第二个: 生命周期配置不包括的插件执行:org.apache.maven.plugins:maven-comp

    • 我在maven-compiler-plugin的pom.xml中有以下配置。 JDK的源版本和目标版本应该是什么?它如何依赖于安装在我的计算机上的jdk版本?他们可能不一样吗?例如,安装的jdk是1.8,在源参数-1.6,目标-1.7中。

    • 本文向大家介绍编译器和汇编器之间的区别,包括了编译器和汇编器之间的区别的使用技巧和注意事项,需要的朋友参考一下 编译器 编译器用于将高级编程语言代码转换为机器级代码并创建可执行程序。编译器检查程序中的错误并报告它们。所有错误都将被清除,否则将不会编译和执行代码。 组装工 汇编程序用于将汇编级代码转换为机器可读代码。汇编程序也会检查每条指令的正确性并报告诊断报告。 以下是编译器和汇编器之间的重要区别