【问题标题】:Multimodule gradle build jar多模块 gradle 构建 jar
【发布时间】:2020-06-20 02:36:53
【问题描述】:

我在 intellij 中有一个多模块 gradle 构建,其中父(java 独立 httpclient)项目包括一个使用 :-

的 utils 项目

implementation project (project-name)dependencies{

当我运行 gradle 构建时,在构建文件夹中创建的 jar 不包含我执行 jar tvf <jarname>.jar 时 util 项目的类/jar

但是,它在 gradle 工具窗口 -> 任务 -> intellij 中的源集中作为子项目可见。

我可以让子项目包含在父 jar 中的一种方法是将它发布到 nexus 上,包含快照并创建一个“jar”任务。但是由于这偏离了多模块结构,所以它不是一个可以接受的方案。

请指点一下如何导入 jar?

PS :- 父项目不是 spring 应用所以我不能使用 spring 依赖管理插件。

【问题讨论】:

  • Gradle 多项目构建中的每个子项目都会创建一个单独的工件。如果要创建fat/uber JAR 文件,请使用github.com/johnrengelman/shadow等插件

标签: java gradle intellij-idea dependency-management


【解决方案1】:

默认情况下,Gradle 将构建一个仅包含项目本身源代码的 JAR。该项目还提供元数据以了解它需要哪些依赖项。然后可以在发布到 Maven 或 Ivy 存储库时使用此元数据来填充相关的元数据文件。 这意味着消费者可以利用该信息来拉取依赖项及其传递依赖项。

您想要实现的目标有所不同,因为您希望将依赖项嵌入到 JAR 中。 为此,您有不同的选择:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 2020-06-26
    • 1970-01-01
    • 2017-03-09
    • 2021-08-03
    • 2017-08-16
    • 2017-07-08
    • 1970-01-01
    相关资源
    最近更新 更多