java - 多模块 gradle 构建 jar

标签 java gradle intellij-idea dependency-management

我在 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 中。 您对此有不同的选择:

您在 JAR 中具体放入的内容取决于您的具体用例。

关于java - 多模块 gradle 构建 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579648/

相关文章:

java - Glassfish - 获取 session 中的所有队列

Java Reflect/AOP 覆盖父类(super class)型私有(private)方法

java - 迁移到 Spring Boot 2 后忽略自定义 ObjectMapper

intellij-idea - 导入Rust项目时出现IntelliJ错误

java - 使用 mysql connector-j 时出错

android - 使用多个用户创建的库和依赖项将Android应用程序从Eclipse迁移到Android Studio

android - 将android模块上传到bintray并链接到jcenter

android - 使用 Gradle 在 Android Studio 中运行普通 Java 项目的单元测试

java - 在命令提示符和 IntelliJ IDEA 中使用自定义 jar 库

java - 安卓工作室 : How to choose what to import from VCS