在How to define qualified exports to unknown modules?之后,我发布了一个testcase,其中包含两个模块:core
和plugin
。
core
尝试使用合格的导出将软件包暴露给plugin
,但是编译器抱怨plugin
不存在。遵循Alan Bateman的建议,我尝试将指向--module-source-path <path-of-plugin> --module plugin
的{{1}}指向core
,但是编译器抱怨:
plugin
为什么编译器无法找到模块module plugin not found in source path
?
答案 0 :(得分:0)
我通过反复试验弄清楚了。
--module-source-path ${project.basedir}/../*/src/main/java
确保编译器可以看到两个模块的源代码。--module core
确保尽管看到了所有模块,编译器仍只构建core
。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
。