在gradle脚本中调用java函数

时间:2016-03-22 08:44:04

标签: gradle build.gradle

我有一个java类,它可以执行某种功能,其中一个函数返回一些我需要将它用于gradle脚本来设置项目属性
我通过创建项目工件来实现它,并通过将其添加到类路径中来使用该工件,这使我可以访问该类和函数。

buildscript {
  repositories {
    jcenter()
    maven{
      url 'http:localhost:8081/artifactory/temp'
    }
  }

  dependencies { 
    classpath "utility:sampleutility:1.0"
  }
}

import com.polsys.utility.MyUtil
dependencies {
    compile 'org.slf4j:slf4j-api:1.7.13'
    compile 'HRP:'+new MyUtil().callMe()+':1.0'
    //callme function returns the name of artifact. 
    testCompile 'junit:junit:4.12'
}

现在,我通过上面提到的方式实现了它,即创建工件,将该工件添加到类路径中,然后导入类并使用函数。这是否可以调用当前项目的功能?所以我可以将工件中可用的功能合并到当前项目中。

2 个答案:

答案 0 :(得分:2)

简单的方法是将您的Java / Groovy代码放在buildSrc目录下。 Gradle将编译它,您将能够从您的buildscript中调用此代码。查看https://docs.gradle.org/current/userguide/custom_plugins.html及相关文档。

答案 1 :(得分:2)

要使您的Java代码可用于gradle脚本,您需要将java代码放在下面给出的目录层次结构中:

  • ProjectRootDirectory
    • buildSrc
      • SRC
          • 常规/ JAVA
            • YourPackages(在我的例子中是java包和类)

这是gradle脚本查找外部插件的路径。现在,您可以将类导入和访问到gradle脚本中(您最终不会得到" 无法解析类"错误)。