无法使用--module-source-path解析模块

时间:2018-12-10 20:10:28

标签: java maven java-module

How to define qualified exports to unknown modules?之后,我发布了一个testcase,其中包含两个模块:coreplugin

core尝试使用合格的导出将软件包暴露给plugin,但是编译器抱怨plugin不存在。遵循Alan Bateman的建议,我尝试将指向--module-source-path <path-of-plugin> --module plugin的{​​{1}}指向core,但是编译器抱怨:

plugin

为什么编译器无法找到模块module plugin not found in source path

1 个答案:

答案 0 :(得分:0)

我通过反复试验弄清楚了。

  1. 使用--module-source-path ${project.basedir}/../*/src/main/java确保编译器可以看到两个模块的源代码。
  2. 使用--module core确保尽管看到了所有模块,编译器仍只构建core
  3. 告诉maven-jar-plugin来封装classes/${module.name}中的类,而不是仅仅封装classes,因为module-source-path会导致输出以模块名称作为前缀。我尚未找到禁用此前缀的方法。

可以在https://bitbucket.org/cowwoc/qualified-exports-testcase/

找到固定代码

注意事项:仅当模块目录名称(由*解析的组件)与Java模块名称匹配时,此技术才有效。在此特定示例中,模块core的源位于目录core/src/main/java中。另一方面,如果目录名称为core但相应的Java模块为org.bitbucket.core,则编译将失败,并显示module org.bitbucket.core not found in module source path