我有问题从intellij运行我的春季启动应用程序。
当我从命令行进行构建和运行jar时,它工作正常。但我无法从IntelliJ运行它。
看起来当从命令行运行时它会加载application.properties
文件但是从IntelliJ运行时它不会加载application.properties
文件。
这是我的build.gradle
文件:
buildscript {
ext {
springBootVersion = '1.2.5.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'io.spring.dependency-management'
jar {
baseName = 'java-apns-notifier'
version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.data:spring-data-commons:1.10.2.RELEASE")
compile("org.springframework.boot:spring-boot-starter-jdbc")
compile("org.apache.commons:commons-lang3:3.0")
compile("org.springframework:spring-web")
//compile("com.relayrides:ios:0.4.3")
compile files('libs/pushy/pushy-0.4.3.jar')
compile("io.netty:netty-all:4.0.28.Final")
compile('com.googlecode.json-simple:json-simple:1.1')
compile("com.fasterxml.jackson.core:jackson-databind")
compile("com.mandrillapp.wrapper.lutung:lutung:0.0.5")
compile("com.google.guava:guava:18.0")
runtime("mysql:mysql-connector-java")
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile("junit:junit")
}
eclipse {
classpath {
containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
}
}
task copyResources(type: Copy) {
from 'src/main/resources'
into 'build/libs'
exclude 'logback.xml'
}
processResources{
exclude 'application.properties'
}
task myBuild(type: GradleBuild) {
tasks = ['build', 'copyResources']
}
task wrapper(type: Wrapper) {
gradleVersion = '2.6'
}
我对主要课程进行了以下编辑:
@SpringBootApplication
@EnableScheduling
@EnableAutoConfiguration
主类(Application.java)中的这一行是中断的地方:
ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
这是堆栈跟踪:
org.springframework.beans.factory.BeanCreationException:错误 创建名为'apnsMessageDAOImpl'的bean:注入自动装配 依赖失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private org.springframework.jdbc.core.JdbcTemplate info.gandraweb.apns.repository.ApnsMessageDAOImpl.jdbcTemplate;嵌套 异常是org.springframework.beans.factory.BeanCreationException: 使用名称创建bean时出错 'org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration $ JdbcTemplateConfiguration': 注入自动连接的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private javax.sql.DataSource org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration $ JdbcTemplateConfiguration.dataSource; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 在类路径资源中定义名为'dataSource'的bean [组织/ springframework的的/ boot /自动配置/ JDBC / DataSourceAutoConfiguration $ NonEmbeddedConfiguration.class]: 通过工厂方法进行Bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化[javax.sql.DataSource]:工厂方法'dataSource'抛出 例外;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 为数据库类型NONE确定嵌入式数据库驱动程序类。如果 你想要一个嵌入式数据库,请将支持的数据库放在 类路径。在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
这里是my folder layout:
我做错了什么?