Eclipse 9和maven

时间:2017-11-04 10:55:31

标签: java eclipse maven jigsaw

我安装版本:Oxygen.1a版本(4.7.1a)版本号:20171005-1200 支持Java 9。

在eclipse.ini上建议配置

-vm
C:\Program Files\Java\jdk-9\bin\javaw.exe
--add-modules=ALL-SYSTEM

我已经开发了java 9(java 9 modularity)code项目来测试依赖注入作为来自eclipse的纯Java prject,但是当我集成Maven运行我的eclipse时,我系统地得到以下错误

  

启动初始化期间发生错误   layerjava.lang.module.FindException:模块com.my.module.hello.test   找不到

唯一的解决方案是添加VM参数

--module-path target/classes;../my-module-api/target/classes;../my-module-it/target/classes --module com.my.module.hello.test/com.my.module.hello.Reflection

enter image description here

确实,如果在加载

期间加上Vm参数,我可以看到详细参数
  

... [0.694s] [info] [class,load] java.lang.NamedPackage source:   jrt:/java.base [0.697s] [info] [class,load] com.my.module.hello.MyHello   资源:   文件:/ C:/用户/ 212442540 /工作区培训/我的模块,PRJ /我的模块/目标/班/   [0.698s] [信息] [类,负载]   java.lang.module.ModuleDescriptor $$ Lambda $ 24/2114889273来源:   java.lang.module.ModuleDescriptor ...

当我删除" - module-path"参数此行消失。

注意:Eclipse能够在编译或编辑期间正常工作。请参阅completition等等。

enter image description here

我已将modpath依赖项添加到我的项目

强制依赖项目配置

我在项目配置中手动添加了依赖项 enter image description here

所以似乎Eclipse能够编译java 9模块,但如果与maven集成则无法运行模块。

强制依赖于Configratin Run 我还手动添加了依赖项 enter image description here 图1

但是eclipse继续删除它们。

在:

manually

图2

运行eclipse后恢复:

after save 图3

如果与maven集成,eclipse似乎会系统地重置配置。

1 个答案:

答案 0 :(得分:6)

我可以重现您的问题,它看起来像M2Eclipse的错误。

Please report it to EclipseBug 526838 - Eclipse wrong Module dependencies on Run configuration when integrated with maven

解决方法使用 外部工具配置 而不是Java应用程序运行配置:

  1. 运行>外部工具>外部工具配置......
  2. 选择 计划 ,然后点击左上角的 新启动配置 图标
  3. 输入以下数值:

    地点:C:\windows\system32\cmd.exe

    工作目录:${workspace_loc:/my-module}

    参数:

    /C java
    -p target/classes;../my-module-api/target/classes;../my-module-it/target/classes
    -m com.my.module.hello.test/com.my.module.hello.Reflection

  4. 点击 运行