如何将 java 源添加到 gradle buildscript 类路径?
How to add java source onto gradle buildscript classpath?
我有一个 Java class,我想从我的 gradle 构建脚本中调用它:
buildscript {
dependencies {
// This is the part I can't figure out...
classpath files("src/main/java/com/example")
}
}
import com.example.MyClass
task runner(dependsOn: 'classes') << {
def text = com.example.MyClass.doIt()
println text
}
doIt()
方法只是 returns 一个字符串。
项目布局如下:
.
├── build.gradle
└── src
└── main
└── java
└── com
└── example
└── MyClass.java
我知道我需要将 class 添加到构建脚本依赖项中,否则导入无效,但我不明白如何将项目源添加为依赖项构建脚本。我尝试了以下方法:
classpath project
classpath rootProject
classpath project(":gradle-test")
classpath files("src/main/java/com/example")
我走不开
> startup failed:
build file '/Users/jameselsey/development/james-projects/gradle-test/build.gradle': 8: unable to resolve class com.example.MyClass
@ line 8, column 1.
import com.example.MyClass
^
1 error
如何将 MyClass
添加到构建脚本依赖项?
您可以通过两种方式实现这一目标。
如果您的 Java 代码很小,那么您可以简单地将其转换为 groovy 并将其包含在 gradle 脚本中。
如果您的代码相当大并且需要多个 classes,首选选项是使用隐式 [buildSrc]
您可以在 buildSrc/src/main/java 下创建 classes,这些 classes 将被编译并放置在构建脚本 classpath 中,并且可以在 gradle 脚本期间使用.
项目源(class、测试classes、资源)在构建脚本期间不可用。因为这会引入循环依赖,因为您需要构建来编译源代码,但构建需要 class 才能执行。
Gradle 文档:http://gradle.org/docs/current/userguide/organizing_build_logic.html#sec:build_sources
示例:https://zeroturnaround.com/rebellabs/using-buildsrc-for-custom-logic-in-gradle-builds/
我有一个 Java class,我想从我的 gradle 构建脚本中调用它:
buildscript {
dependencies {
// This is the part I can't figure out...
classpath files("src/main/java/com/example")
}
}
import com.example.MyClass
task runner(dependsOn: 'classes') << {
def text = com.example.MyClass.doIt()
println text
}
doIt()
方法只是 returns 一个字符串。
项目布局如下:
.
├── build.gradle
└── src
└── main
└── java
└── com
└── example
└── MyClass.java
我知道我需要将 class 添加到构建脚本依赖项中,否则导入无效,但我不明白如何将项目源添加为依赖项构建脚本。我尝试了以下方法:
classpath project
classpath rootProject
classpath project(":gradle-test")
classpath files("src/main/java/com/example")
我走不开
> startup failed:
build file '/Users/jameselsey/development/james-projects/gradle-test/build.gradle': 8: unable to resolve class com.example.MyClass
@ line 8, column 1.
import com.example.MyClass
^
1 error
如何将 MyClass
添加到构建脚本依赖项?
您可以通过两种方式实现这一目标。
如果您的 Java 代码很小,那么您可以简单地将其转换为 groovy 并将其包含在 gradle 脚本中。
如果您的代码相当大并且需要多个 classes,首选选项是使用隐式 [buildSrc] 您可以在 buildSrc/src/main/java 下创建 classes,这些 classes 将被编译并放置在构建脚本 classpath 中,并且可以在 gradle 脚本期间使用.
项目源(class、测试classes、资源)在构建脚本期间不可用。因为这会引入循环依赖,因为您需要构建来编译源代码,但构建需要 class 才能执行。
Gradle 文档:http://gradle.org/docs/current/userguide/organizing_build_logic.html#sec:build_sources
示例:https://zeroturnaround.com/rebellabs/using-buildsrc-for-custom-logic-in-gradle-builds/