【问题标题】:Add dynamic dependencies via command line通过命令行添加动态依赖
【发布时间】:2016-11-15 10:11:48
【问题描述】:

是否可以使用 CLI 将带有 Gradle 插件(或任务)的 jar 添加到构建类路径而不修改 build.gradle?可以从 Maven 存储库中解析添加的 JAR 吗?

buildscript { dependencies { classpath }} 可以通过 CLI 控制吗?我可以使用 CLI 制作 Gradle 来解析来自 Maven 的 JAR 吗?

基本上我需要达到与 Maven 相同的情况,它允许通过调用任何插件

mvn <plugin-group-id>:<plugin-artifact-id>:<plugin-version>:<plugin-goal>

我正在编写一对Maven and Gradle plugins 以将有关项目及其依赖项的信息提取到 JSON 文件中,以后可以通过编程方式对其进行处理。我们的想法是能够将其应用于大量 OSS 项目,因此无需修改它们。

【问题讨论】:

  • “是否可以使用 CLI 从 Maven 存储库应用带有 Gradle 插件的 JAR”此声明需要澄清。你想在构建中添加一个 jar 任务吗?您想将 jar 添加到编译/运行时依赖项吗?不清楚你想要什么
  • 我更新了声明
  • "build classpath" 仍然模棱两可,因为它可能意味着 buildscript { classpath ... }}dependencies { compile ... }} 或其他什么?运行时等
  • 我的意思是buildscript { dependencies { classpath }}。一种,用于使带有自定义插件类的jar可用

标签: gradle plugins command-line-interface


【解决方案1】:

我想我现在明白了

myinit-script.gradle

if (hasProperty('extraDependencies')) {
    def extraDeps = property('extraDependencies').split(',')
    allprojects {
        buildscript {
            dependencies {
                classpath extraDeps
            }
        }
    }
}

命令行

gradlew --init-script myinit-script.gradle -PextraDependencies=org.foo:bar:1.0,org.foo:baz:1.2 build

【讨论】:

  • 似乎我的问题确实很令人困惑,抱歉;(我需要在构建脚本类路径上提供自定义插件(或直接任务)并调用它。不添加apply plugin 语句和buildscript { dependencies { classpath }}build.gradle
  • 更新了答案以通过init-script进行操作
猜你喜欢
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 2020-10-23
  • 2019-08-10
相关资源
最近更新 更多