为什么spring boot不能从intelij运行?

时间:2015-10-20 15:27:07

标签: intellij-idea gradle spring-boot

我有问题从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

我做错了什么?

0 个答案:

没有答案