我正在尝试使用Mac中的Gradle创建一个简单的Spring Boot应用程序。 在gradle bootRun上,我收到以下错误:
失败:构建因异常而失败。
处理'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/java''以非零退出值1结束
提出异常: 2015-08-23 01:37:57.989 WARN 6186 --- [main] ationConfigEmbeddedWebApplicationContext:上下文初始化期间遇到的异常 - 取消刷新尝试
org.springframework.beans.factory.BeanCreationException:创建名为'embeddedServletContainerCustomizerBeanPostProcessor'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.cache.annotation.ProxyCachingConfiguration'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配方法:void org.springframework.cache.annotation.AbstractCachingConfiguration.setConfigurers(java.util.Collection);嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.cloud.aws.cache.config.annotation.ElastiCacheCachingConfiguration'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private org.springframework.cloud.aws.core.env.stack.ListableStackResourceFactory org.springframework.cloud.aws.cache.config.annotation.ElastiCacheCachingConfiguration。 stackResourceFactory;嵌套异常是org.springframework.beans.factory.BeanCreationException:在类org.springframework.cloud.aws.context.config.annotation.ContextStackConfiguration中定义名为'stackResourceRegistryFactoryBean'的bean创建错误:通过工厂方法实例化Bean失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryFactoryBean]:工厂方法'stackResourceRegistryFactoryBean'抛出异常;嵌套异常是java.lang.IllegalArgumentException:未定义有效的实例ID 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:303)
build.gradle如下所示:
buildscript {
repositories {
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.0.BUILD-SNAPSHOT")
classpath("io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE")
}
}
apply plugin: 'java'
//apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: "io.spring.dependency-management"
//sourceCompatibility = 1.5
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
baseName = 'myApp'
version = '0.0.1-SNAPSHOT'
}
repositories {
//mavenCentral()
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
maven { url "http://repo.spring.io/release/" }
}
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-aws:1.0.2.RELEASE'
}
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework:spring-jdbc")
compile("org.springframework.boot:spring-boot-starter-jdbc")
compile("org.springframework.cloud:spring-cloud-starter-aws")
compile("org.springframework.cloud:spring-cloud-aws-jdbc")
compile("org.springframework.boot:spring-boot-starter-undertow")
compile("postgresql:postgresql:9.0-801.jdbc4")
testCompile("org.springframework.boot:spring-boot-starter-test")
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
这里有什么帮助吗?
答案 0 :(得分:3)
异常的原因是配置文件中未定义EC2环境配置。由于您在本地计算机上运行此应用程序,我认为您不需要它。
<强>解决方案强>
从您的gradle文件中删除以下内容,看看是否一切正常。
compile("org.springframework.cloud:spring-cloud-starter-aws")
compile("org.springframework.cloud:spring-cloud-aws-jdbc")
上述依赖关系仅适用于在EC2环境中运行的spring应用程序。
希望这有帮助。
答案 1 :(得分:-1)
./gradlew bootRun
运行后我遇到了类似的错误
- 在我的情况下问题出现bc端口8080已经在使用,
默认情况下,Tomcat服务器在8080上启动 - 更改/解除阻塞端口足以解决此问题
答案 2 :(得分:-1)
在src/main/resources
打开文件application.properties
并更改端口(在设置行时设置端口号),添加以下行:
server.port=1337
同样适合我。
最后输入:./gradlew bootRun