我正在尝试使用Eclipse、Buildship、Gradle来开发java 9应用程序。
月食:氧气建造: 2.2.0级: 4.3.1
我正在寻找一种方法来告诉Buildship/Gradle向Modulepath而不是Classpath添加Project和外部依赖项。
下面是我在配置Eclipse项目Java构建路径时所看到的内容的表示。
Properties for TestMain
Java Build path
Source | Projects | Libraries | Order and Export
---------
Modulepath
- JRE System Library [JavaSe-9]
Classpath
- Project and External Dependencies
- Access rules: No rules defined
- External annotations: (None)
- Native library location: (None)
- coreutil-9.4.1.jar
- slf4j-api-1.7.2.1.jar
- ...当我试图引用模块-info.java中的自动模块coreutil时,我得到了无法将coreutil解析为一个模块的错误。
如果我手动将coreutil-9.4.1.jar添加到Modulepath中,则coreutil模块将可见。但是,这是一个问题,因为在某些情况下手动添加60多个库是不切实际的。而且,每次我刷新Gradle项目时,它们都会从Modulepath中移除。
谢谢你帮忙。
加厄坦
发布于 2017-12-14 19:28:27
在与gradle的Donós交谈(谢谢Donát)之后,在build.gradle文件中添加以下内容解决了这个问题:
apply plugin: 'eclipse'
eclipse.classpath.file {
whenMerged {
entries.findAll { isModule(it) }.each { it.entryAttributes['module'] = 'true' }
}
}
boolean isModule(entry) {
// filter java 9 modules
entry.kind == 'lib' // Only libraries can be modules
}https://stackoverflow.com/questions/47676613
复制相似问题