新手Gradle query.Consider跟随项目的结构
Project
|
-component_1
|
-component_2
Run Code Online (Sandbox Code Playgroud)
我想从每个组件源生成一个jar,它位于src目录下.请注意,这不是一个多项目场景,而是一种多组件.我怎么能在Gradle(1.6)中做到这一点
更新:
需要单个构建文件,而不是每个组件具有单独的构建
Ben*_*hko 10
你提到一些组件相互依赖,所以我也想知道为什么你不想将它作为一个多项目构建来实现.现在,让我们假设您的所有组件都是独立的Gradle项目.鉴于它们生成了一个JAR文件,似乎它们是Java项目.我build.gradle为每个项目创建一个文件.
.
??? your-project
??? component1
? ??? build.gradle
? ??? src
??? component2
??? build.gradle
??? src
Run Code Online (Sandbox Code Playgroud)
对于每个项目,我们将应用Java插件.与此插件引入的标准约定的唯一区别是您的源文件位于目录src而不是src/main/java.要进行配置,您需要在build.gradle文件中添加以下内容:
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您gradle build为任何项目执行,Gradle将编译您的生产和测试源代码,运行您的单元测试并在目录下组装JAR文件build/libs.
编辑:
您可以像Matt在他的评论中解释的那样实现这一点,也可以采用多项目构建方法.我把以下代码示例放在一起给你一个想法.在项目的根级别创建两个文件:build.gradle和settings.gradle.
.
??? your-project
??? build.gradle
??? settings.gradle
??? component1
? ??? src
??? component2
??? src
Run Code Online (Sandbox Code Playgroud)
在settings.gradle文件中包含属于您的构建的项目,如下所示:
include 'component1', 'component2'
Run Code Online (Sandbox Code Playgroud)
然后在您的build.gradle文件中,您只需将项目定义放入subprojects配置块中即可定义一次.这意味着它适用于您构建的所有子项目.使用此方法,您可以定义常见行为,而无需重复代码.
subprojects {
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |