当前位置: 首页 > 知识库问答 >
问题:

如何使用gradle根据项目版本有条件地构建工件?

淳于宏伯
2023-03-14

您好,我有一个名为a的项目,包含三个模块(核心、移动网络),结构如下:

A
   --settings.gradle
   --build.gradle
   --core
     --build.gradle
   --web
      --build.gradle
   --mobile
      --build.gradle

My settings.gradle类似于:

include 'core'
include 'web'
include 'mobile'

现在已经有了不同的版本,在版本2.0之前,我们提供移动模块,在此之前,我们不想构建“移动”模块。现在我有了1.0、1.1、1.2、2.0、2.1版本,我们在每次提交代码之前测试和检查编译。我们是这样做的:

VERSIONS=( "1.0" "1.1" "1.2" "2.0" "2.1 )
for version in "${VERSIONS[@]}"; do (gradle -PspringBootVersion=${version} clean install uploadArchives); done

这样,在2.0之前的版本中,它仍然会构建“移动”模块,这当然会失败。我的问题是如何有条件地检查和构建项目?提前谢谢。

共有1个答案

赵健柏
2023-03-14
include 'core'
include 'web'

if("${springBootVersion}" ==~ /2\.[0-9]) {
    include include 'mobile'
}

很简单,我只修改上面的settings.gradle,然后得到正确的结果。

 类似资料:
  • 我有一个相当复杂的Jenkins工作,它构建,单元测试和打包Web应用程序。根据情况,一旦这项工作完成,我想做不同的事情。我还没有找到一种可重用/可维护的方法来做到这一点。真的是这样还是我错过了什么? 完成复杂的工作后,我希望拥有的选项: > 什么都不做 启动我的低风险变更构建管道: < li >将我的WAR文件复制到我的工件库 < li >部署到生产环境中 启动我的高风险变更构建管道: 将我的W

  • 我有一个具有以下结构的maven项目 即Project有它的pom.xml(作为pom的包)并有模块。每个模块都有一个节中,可以将其设置为“project”的工件(在根pom.xml中定义),也可以将其设置为任何其他project2/project3/projectn工件。 现在,由于这个原因,我看看如果Project1的根pom.xml设置为0.0.1-snapshot,并且如果我想创建一个版本

  • 我有一个包含多个子项目的根项目。最初,我们将这些项目作为独立的Maven项目保留,但我意识到Gradle更适合我使用。但是对于其中一个子项目,我们宁可不将其转换为Gradle项目,而将其保留为Maven项目。 root/build.gradle root/common.gradle root/api/pom.xml

  • 请给一些建议来解决这个问题?

  • 我的用例是,我希望每个构建/运行的工件都有一个唯一的版本号。对于CircleCI、Travis等当前工具,有一个可用的构建编号,它基本上是一个不断上升的计数器。因此,我可以创建版本字符串,如0.1.0-27。即使对于相同的提交,此计数器也会每次增加。 如何使用GitHub Actions做类似的事情?Github操作只提供GITHUB_SHA和GITHUB_REF。

  • 问题内容: 我想在构建时使用gradle在我的项目中包含salesforce的enterprise.jar文件。有人可以帮助我如何在项目的src / main / resources文件夹中包含一个本地jar文件。 问题答案: 文档中对此进行了说明。应该执行以下操作: 我不会把罐子放进去。它不是项目的资源,而是编译依赖项。我会将其放在lib目录中。