gpt4 book ai didi

java - Gradle 扁平项目在一个项目中包含多个 Jars

转载 作者:行者123 更新时间:2023-12-02 07:56:00 26 4
gpt4 key购买 nike

新手 Gradle 查询。考虑以下项目结构

Project
|
-component_1

|
-component_2

我想从位于 src 目录下的每个组件源生成一个 jar。请注意,这不是多项目场景,而是多组件场景。我怎样才能在 Gradle (1.6) 中做到这一点

更新:

需要一个构建文件,而不是每个组件都有单独的构建

最佳答案

您提到某些组件相互依赖,所以我也想知道为什么您不想将其实现为多项目构建。现在,我们假设所有组件都是独立的 Gradle 项目。鉴于它们生成 JAR 文件,似乎可以假定它们是 Java 项目。我会为每个项目创建一个 build.gradle 文件。

.
└── your-project
└── component1
│ ├── build.gradle
│ └── src
└── component2
├── build.gradle
└── src

对于每个项目,我们都将应用 Java 插件。与此插件引入的标准约定的唯一区别是您的源文件位于目录 src 而不是 src/main/java 中。要配置此功能,您需要将以下内容放入 build.gradle 文件中:

apply plugin: 'java'

sourceSets {
main {
java {
srcDirs = ['src']
}
}
}

如果您对任何项目执行 gradle build,Gradle 将编译您的生产和测试源代码,运行单元测试并在目录 build/libs< 下组装 JAR 文件.

编辑:

您可以按照 Matt 在评论中解释的方式实现这一点,也可以采用多项目构建方法。我整理了以下代码示例来为您提供想法。在项目的根级别创建两个文件:build.gradlesettings.gradle

.
└── your-project
├── build.gradle
├── settings.gradle
├── component1
│ └── src
└── component2
└── src

settings.gradle 文件中包含属于构建一部分的项目,如下所示:

include 'component1', 'component2'

然后在您的 build.gradle 文件中,您只需将项目定义放入 subprojects 配置 block 中即可定义一次。这意味着它适用于您构建的所有子项目。通过这种方法,您可以定义常见行为,而无需重复代码。

subprojects {
apply plugin: 'java'

sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
}

关于java - Gradle 扁平项目在一个项目中包含多个 Jars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com