如何通过 gradle 任务执行依赖注入的特定 class 方法?
How to execute particular class method with dependency injection through gradle task?
这是我在 build.gradle
中的代码
task runDataFeeder(type:JavaExec){
classpath = sourceSets.main.runtimeClasspath
main = "example.core.RunMigrator"
}
还有我的RunMigrator
class
class Migrator(@Inject val seedDataService: seedDataService) {
fun migrate() {
seedDataService.createZone()
}
}
class RunMigrator {
companion object {
@JvmStatic
fun main(args: Array<String>) {
Migrator().migrate()
}
}
}
注意 seedDataService
有将数据馈送到数据库的方法。
我正在尝试从 Gradle 任务 运行 RunMigrator
main 方法但不知道如何通过 Gradle 任务 [= 注入 seedDataService
19=]
我认为您应该初始化应用程序上下文以启动 DI。它适用于 Java:
import io.micronaut.context.ApplicationContext;
public class RunMigrator {
public static void main(String[] args) {
try (ApplicationContext applicationContext = ApplicationContext.run()) {
Migrator migrator = applicationContext.getBean(Migrator.class);
migrator.migrate();
}
}
}
这是我在 build.gradle
task runDataFeeder(type:JavaExec){
classpath = sourceSets.main.runtimeClasspath
main = "example.core.RunMigrator"
}
还有我的RunMigrator
class
class Migrator(@Inject val seedDataService: seedDataService) {
fun migrate() {
seedDataService.createZone()
}
}
class RunMigrator {
companion object {
@JvmStatic
fun main(args: Array<String>) {
Migrator().migrate()
}
}
}
注意 seedDataService
有将数据馈送到数据库的方法。
我正在尝试从 Gradle 任务 运行 RunMigrator
main 方法但不知道如何通过 Gradle 任务 [= 注入 seedDataService
19=]
我认为您应该初始化应用程序上下文以启动 DI。它适用于 Java:
import io.micronaut.context.ApplicationContext;
public class RunMigrator {
public static void main(String[] args) {
try (ApplicationContext applicationContext = ApplicationContext.run()) {
Migrator migrator = applicationContext.getBean(Migrator.class);
migrator.migrate();
}
}
}