Kotlin 如何通过gradle任务执行依赖注入的特定类方法?
这是我在Kotlin 如何通过gradle任务执行依赖注入的特定类方法?,kotlin,gradle,micronaut,gradle-task,Kotlin,Gradle,Micronaut,Gradle Task,这是我在build.gradle中的代码 task runDataFeeder(type:JavaExec){ classpath = sourceSets.main.runtimeClasspath main = "example.core.RunMigrator" } 和我的RunMigrator类 class Migrator(@Inject val seedDataService: seedDataService) { fun migrate
build.gradle中的代码
task runDataFeeder(type:JavaExec){
classpath = sourceSets.main.runtimeClasspath
main = "example.core.RunMigrator"
}
和我的RunMigrator
类
class Migrator(@Inject val seedDataService: seedDataService) {
fun migrate() {
seedDataService.createZone()
}
}
class RunMigrator {
companion object {
@JvmStatic
fun main(args: Array<String>) {
Migrator().migrate()
}
}
}
类迁移器(@injectval-seedDataService:seedDataService){
乐趣迁移(){
seedDataService.createZone()
}
}
类RunMigrator{
伴星{
@JvmStatic
趣味主线(args:Array){
Migrator().migrate()
}
}
}
注意种子数据服务
具有将数据馈送到数据库的方法
我正试图从Gradle任务运行RunMigrator
main方法,但不知道如何通过Gradle任务注入seedDataService
,我认为您应该初始化应用程序上下文,以便启动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();
}
}
}
我认为应该初始化应用程序上下文以启动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();
}
}
}