3

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

此外,可能需要注意的是原始项目与 Java 无关(无需构建其他 Java 代码)

PS基于以下评论:

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

4

1 回答 1

3

感谢RaGe指出 JavaExec,结果证明这很简单。这是你要做的:

  1. 就像在常规的 Gradle 驱动的 Java 项目中一样,将您的 Java 代码放在 /src/main/java 中。确保它在您要调用的文件中有main方法
  2. 添加apply plugin: 'java'build.gradle
  3. 如果您的 Java 代码对 3rd 方库有任何依赖项,请将这些添加到依赖项部分
  4. 像这样向build.gradle添加新的任务部分:
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
于 2016-03-18T18:54:53.617 回答