当前位置: 首页 > 面试题库 >

在Gradle构建脚本中使用Java类

荀博
2023-03-14
问题内容

我有一个Gradle构建脚本,该脚本必须实例化Task中的Java类并在创建的对象上调用方法。目前,我有以下内容:

apply plugin: 'java'

dependencies {
    compile files("libs/some.library.jar")
}

task A << {

    def obj = new some.library.TestClass()
    obj.doSomething()

}

问题是some.library.TestClass()找不到该类。我阅读了有关如何在Gradle中使用Groovy类的文章,但是我需要Java类来自外部JAR文件。如何将jar添加到构建源?似乎该dependencies块没有执行我期望的操作。谁能给我一个正确方向的提示?


问题答案:

该依赖关系compilefiles("libs/some.library.jar")作为项目依赖关系而不是脚本依赖关系本身添加。您需要做的是在脚本的classpath作用域中添加此依赖项。

apply plugin: 'java'

buildscript {
   dependencies {
      classpath files("libs/some.library.jar")
   }
}

task A << {
    def obj = new some.library.TestClass()
    obj.doSomething()
}

现在应该可以了。



 类似资料:
  • 我有一个Gradle构建脚本,它必须在一个任务中实例化一个Java类,并在创建的对象上调用一个方法。目前,我有以下内容: 问题是找不到类。我阅读了这篇关于如何在Gradle中使用Groovy类的文章,但我需要我的Java类来自外部JAR文件。如何将jar添加到构建源中?似乎块没有完成我所期望的任务。谁能给我一个正确方向的提示吗?

  • 我的问题是spring版本没有被识别为可变版本。那么我如何在字符串内部传递它呢?

  • 主要内容:Gradle如何使用Groovy,Groovy的JDK方法,以下是纠正/补充内容:Gradle构建脚本文件用来处理两件事情:一个是项目和另一个的任务。每个生成表示一个或多个项目。一个项目表示一个JAR库或Web应用程序,也可能表示由其他项目产生的JAR文件组装的ZIP。简单地说,一个项目是由不同的任务组成。一个任务是指构建执行的一块工作。任务可能是编译一些类,创建一个,产生的或发布一些归档文件库。 注:Gradle使用Groovy语言编写脚本。 Gradle提供了一个域特定语言

  • 我想在gradle构建脚本中从groovy迁移到kotlin dsl。我在项目中有2个脚本:build。gradle和publish maven。第一个连接的gradle。 对于groovy,我应用脚本如下: 对于kotlin,我发现相同的代码如下所示: 但是publish-maven.gradle.kts没有附加到build.gradle.kts.在IDE脚本的顶部经常挂着警告: 代码洞察不可用

  • 这里有一个类似的问题访问项目的额外属性在构建脚本闭包 但是我发现了一个“变通方法”,看起来不像是最佳的 我有一个多gradle项目-我在主gradle文件中使用声明库 现在我还必须设置这些构建脚本,因为我使用插件! 所以再次构建脚本{repositories。。。 现在,我不想两次粘贴URL,而是想使用一个属性——就像我在project中所想的那样。ext属性在buildscript阶段没有设置,

  • Gradle 是以 Groovy 语言为基础, 基于DSL (领域特定语言) 语法的自动化构建工具,但是它增加了一些额外的特性,这使得Gradle更加的容易去阐释构建. 一个构建脚本能够包含任何Groovy语言的元素 ( Any language element except for statement labels ), 每个构建脚本都使用UTF-8编码.