Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
为什么M2Eclipse执行maven编译器插件_Eclipse_M2eclipse_Maven Compiler Plugin - Fatal编程技术网

为什么M2Eclipse执行maven编译器插件

为什么M2Eclipse执行maven编译器插件,eclipse,m2eclipse,maven-compiler-plugin,Eclipse,M2eclipse,Maven Compiler Plugin,这目前不是一个错误,我只是想知道m2e执行maven编译器插件的工作原理 我在插件的pom.xml中找不到任何lifecycleMappingMetadata 有没有可能魔法发生在 workspace\.metadata\.plugins\org.eclipse.m2e.core\>projectname>.lifecyclemapping 我无法真正读取该文件,它似乎是二进制文件。这取决于您在Eclipse中执行的操作: 如果您通过Eclipse中的Maven启动配置运行Maven目标,那么

这目前不是一个错误,我只是想知道m2e执行maven编译器插件的工作原理

我在插件的pom.xml中找不到任何lifecycleMappingMetadata

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


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

这取决于您在Eclipse中执行的操作:

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

我不理解你关于lifecycleMappingMetadata的陈述;您希望在pom.xml中找到它吗?如果是这样,根据我的经验,
maven编译器插件
是例外(即,您不需要添加显式的生命周期映射)。

我通过run on server运行我的项目。。当插件未执行时,谁将我的类编译到目标/类文件夹中?这个文件夹是通过pom定义的。xmlclipse使用它自己的编译器(EclipseJDT)——这就是实现它的编译器。我应该补充一点,大多数情况下都工作得出奇地好。我只能在一些非常特殊的情况下找到差异(Eclipse编译和通过标准maven/java编译之间),例如注释处理器和某些类型的泛型滥用。这意味着m2e将Eclipse编译器配置为输出到目标/类?是的,我想是这样。当Maven nature出现在eclipse项目中时,某些变量会自动拾取,例如目标/类。但与IntelliJ不同,没有插件真正运行。这在更高级的设置中更为明显;例如,maven war插件也不会运行,但Eclipse知道从war插件自动获取配置的一部分(但不是全部)。另外,不确定您是否知道右键单击项目,然后单击Maven部分,然后单击
更新项目
——这将获取pom.xml中的内容并更新Eclipse配置文件。