【问题标题】:Why does M2Eclipse execute the maven-compiler-plugin为什么 M2Eclipse 执行 maven-compiler-plugin
【发布时间】:2017-11-09 07:40:42
【问题描述】:

目前这不是错误,我只是想知道 m2e 执行 maven-compiler-plugin 是如何工作的。

我在插件的 pom.xml 中找不到任何生命周期映射元数据。

魔法有没有可能发生在 workspace\.metadata\.plugins\org.eclipse.m2e.core\>projectname>.lifecyclemapping?

我无法真正读取文件,它似乎是二进制文件。

【问题讨论】:

    标签: eclipse m2eclipse maven-compiler-plugin


    【解决方案1】:

    这取决于你在 Eclipse 中做什么:

    • 如果您通过 Eclipse 中的 Maven 启动配置运行 Maven 目标,则maven-compiler-plugin 将被执行,就像您从 cmd 行运行 Maven 一样(嗯,大部分情况下)。
    • 否则,不会执行maven-compiler-plugin; Eclipse 运行自己的编译器,并忽略插件。但是请注意,如果您在pom.xml(在插件的配置部分)为 JVM 配置参数,某些 Eclipse 插件可能会考虑这些参数(想到m2e-apt,但可能还有其他)

    我不明白你关于生命周期映射元数据的说法;您是否希望在 pom.xml 中找到它?如果是这样,那么根据我的经验,maven-compiler-plugin 除外(即您不需要添加显式生命周期映射)。

    【讨论】:

    • 我通过在服务器上运行来运行我的项目。当插件未执行时,谁将我的类编译到目标/类文件夹中?此文件夹仅通过 pom.xml 定义
    • Eclipse 使用自己的编译器 (Eclipse JDT) - 就是这样做的。
    • 我应该补充一点,大部分时间都运行得非常好。我只能在一些非常特殊的情况下(例如注释处理器和某些类型的泛型滥用)找到差异(Eclipse 编译和通过标准 maven/java 编译之间)。
    • 意思是m2e配置eclipse编译器输出到target/classes?
    • 是的,我想是的。当 Eclipse 项目中存在 Maven 特性时,会自动获取某些变量 - 例如目标/类。但与 IntelliJ 不同的是,实际上没有插件运行。这在更高级的设置中更加明显;例如,maven-war-plugin 也没有运行,但 Eclipse 知道从 war 插件(但不是全部)中自动获取配置的一部分。另外,不确定您是否知道右键单击您的项目,然后是 Maven 部分,然后是 Update project - 这会获取 pom.xml 中的内容并更新 Eclipse 配置文件。
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 2017-05-19
    • 2014-12-09
    • 2019-04-03
    • 2022-08-10
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多