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

在执行阶段配置插件默认值

司英飙
2023-03-14

我是格雷德尔的新手。我正在尝试使用一个插件,但我想在执行过程中更改插件的默认值

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.netflix.nebula:gradle-ospackage-plugin:2.0.3'
    }
}
apply plugin: 'os-package-base'
def version_local = version //project.version
ospackage {
    version = version_local
    .......
    .......
}

我希望在执行过程中使用project.version中存在的版本值。但看起来该值是在执行任何任务之前设置的。有什么想法吗?

共有1个答案

姚雅珺
2023-03-14

这段代码似乎可以做到这一点。

buildRpm.doFirst {
    version = project.version
}

说明:doFirst是一个只在gradle的执行阶段运行的操作,就在运行BuildRPM之前。

 类似资料:
  • 有什么建议吗? DS 代码为: 在其上运行命令的: 项目中的位置:

  • 我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1

  • 我目前正在学习Gradle。 但是我发现,当我在命令行运行时,复制不会发生。只有当显式执行任务时(即通过在命令行运行)才会发生复制。所以上面的代码实际上行为与 我对配置阶段和配置闭包的理解是否不正确?还是我漏掉了一些信息?

  • 和子级POM: 在子pom上运行'mvn clean install'将运行编译器插件的两个执行,并且只运行antrun插件的第一个执行,尽管每个插件的第一个执行都绑定到一个阶段。 现在将pluginManagement移动到子POM:

  • 我正在使用Maven 3.2.3和Maven war 2.6插件。我希望默认执行Maven WAR插件的“inlace”目标(无需在命令行上明确指定“war: inlace”)。所以我创建了一个配置文件来包含以下内容 使用“mvn帮助:活动配置文件”,我验证了在WAR项目上运行“mvn clean install”时正在使用此配置文件。然而,这场战争还没有准备就绪。例如,我得到输出 此外,我注意到

  • 与Jquery Mobile自动初始化共同协作 Working with Jquery Mobile's Auto-initialization 不像其他的Jq项目,比如jq和jq ui,Jquery Mobile会在加载到增强特性时马上应用它(远早于document.ready事件发生时)。这些特性会基于Jquery Mobile的默认配置应用,是针对默认的情形设计的,他可能符合你的需求,也可能