如何使用JavaExec任务将Java代码嵌入到Gradle构建中

时间:2016-03-17 21:01:34

标签: java plugins gradle gradle-plugin javaexec-gradle-plugin

我有一个Gradle驱动的项目,我想添加一个简单的Java任务。这个任务非常特定于项目,如果它可以帮助我不想将它作为一个单独的插件开发。所以问题是我可以在我用于我的项目的同一build.gradle中定义这样的自定义任务吗?或者我不可避免地需要将其打包为一个单独的项目(插件)并安装到本地仓库?

同样重要的是要注意原始项目与Java无关(不需要构建其他Java代码)

P.S。根据以下评论:

我想将src/main/java/SomeUsefulStuff.java添加到现有项目中,并将该文件编译并用作自定义任务。我确实理解每次运行构建时都需要编译它,但是代码会很小。但是它会有一些外部依赖,例如Commons IO

1 个答案:

答案 0 :(得分:1)

感谢RaGe指向JavaExec,结果证明这非常简单。这是你做的:

  1. 将Java代码放在/ src / main / java中,就像在常规的Gradle驱动的Java项目中一样。确保您要调用的文件中有方法
  2. apply plugin: 'java'添加到 build.gradle
  3. 如果您的Java代码对第三方库有依赖关系,请将这些依赖添加到依赖关系部分
  4. 将新任务部分添加到 build.gradle ,如下所示:
  5. task usefulStuff(type: JavaExec) {
          classpath = sourceSets.main.runtimeClasspath
          main = 'com.me.gradle.UsefulStuff'
          // arguments to pass to the application
          args 'OhmyGod!'
        }
    
    1. 现在,您可以将该任务称为构建中的任何任务。例如imporantTask.dependsOn usefulStuff