我有一个用Groov编写的小型Spring Boot测试项目,用Gradle构建。尝试使用
运行时spring run src/com/eval/EvalMain.groovy src/com/eval/InputObj.groov
我收到了
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.eval.InputObj required a bean of type 'java.lang.String' that could not be found.
Action:
Consider defining a bean of type 'java.lang.String' in your configuration.
我的印象是gradle包含了这些类型的东西,并且它应该可以工作,因为Groovy是基于Java构建的。 (另外它是如何知道包路径java.lang的?)下面是我的gradle.build,非常感谢任何帮助!
buildscript {
ext {
springBootVersion = '1.4.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'testJar'
version = '.0.0.2'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
springBoot {
mainClass = "com.eval.EvalMain"
}
答案 0 :(得分:1)
我的印象是gradle包含了这些东西 对我来说,它应该工作,因为Groovy是基于Java构建的。
constructor com.eval.InputObj required a bean of type 'java.lang.String'
异常与Gradle
无关,因为您的InputObj
bean对象需要一个构造函数参数,它是String
参数,您需要提供(使用spring config xml或annotations)来创建bean / object。
答案 1 :(得分:1)
对于那些也在运行Lombok的人,您可能需要@AllArgsConstructor或@NoArgsConstructor Lombok Doc
我还发现这个spring ticket有用