我在 intellij 中构建了一个多模块 gradle,其中父项目(java独立httpclient)包含一个 utils 项目,使用:-
implementation project (project-name)
里面dependencies{
当我运行 gradle 构建时,当我执行 jar tvf <jarname>.jar
时,在构建文件夹中创建的 jar 不包含 util 项目的类/jar
但是,它在 gradle 工具窗口 -> 任务 -> intellij 中的源集中作为子项目可见。
我可以将子项目包含在父 jar 中的一种方法是将其发布到 Nexus 上,包含快照并创建一个“jar”任务。但由于这偏离了多模块结构,因此这不是一个可接受的解决方案。
关于导入 jar 的任何指示吗?
PS:- 父项目不是 spring 应用程序,因此我无法使用 spring 依赖管理插件。
最佳答案
Gradle 默认情况下会构建一个仅包含项目本身源代码的 JAR。该项目还提供元数据来了解它需要哪些依赖项。然后,在发布到 Maven 或 Ivy 存储库时可以使用此元数据来填充相关元数据文件。 这意味着消费者可以利用该信息来提取依赖项及其传递依赖项。
您想要实现的目标是不同的,因为您希望将依赖项嵌入到 JAR 中。 您对此有不同的选择:
- 按照the Gradle documentation做,如果您有简单的需求
- 使用 third party plugin
您在 JAR 中具体放入的内容取决于您的具体用例。
关于java - 多模块 gradle 构建 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579648/