【发布时间】:2019-03-26 10:05:09
【问题描述】:
我有一个多模块 Maven 项目。我使用 maven build helper 插件自动将生成的源添加到类路径中。
我可以在 module-X 中使用 module-X 的生成源,但是,当我将 module-X 添加为 module-Y 的依赖项时,module-X 的生成源不可见,因为它们不可见包含在 X.jar 文件中。
有没有办法在jar文件中包含生成的源或者强制maven生成依赖的源?
【问题讨论】:
-
通过 build-helper 将生成的源代码添加到类路径没有意义。我想你有一个生成代码的模块?生成的源文件不应该是 jar 文件的一部分。为此目的,存在一个名为
xyz-VERSION-sources.jar的文件,但它不属于类路径。使用生成源的模块是定义对适当模块的简单依赖...此外,查看您的 pom 文件真的很有帮助... -
@khmarbaise 谢谢你的解释。显然,我的方法有些问题。我正在使用具有 JPAMetaModelEntityProcessor 的 maven-processor-plugin,该 JPAMetaModelEntityProcessor 在 maven 模块的
generated-sources文件夹下生成源。问题是,我在另一个 maven 模块中扩展了 BaseEntityModel,导致生成:public class UserEntity_ extends BaseEntityModel_ { ... }。这会产生编译错误,因为它找不到 BaseEntityModel_ 类(它在另一个 maven 模块中)。你有什么建议吗? -
您必须向生成代码的模块添加依赖项?你这样做了吗?
-
奇怪的是,生成的静态元模型源不是 jar @khmarbaise 的一部分。但是,我添加了一些使用那些生成的静态元模型类的规范类,现在它们在 jar 中,我不知道如何!问题尚未解决,但暂时绕过。谢谢!
标签: java maven dependencies