Gradle 战争命令不包括休眠 cfg 文件

Posted

技术标签:

【中文标题】Gradle 战争命令不包括休眠 cfg 文件【英文标题】:Gradle war command not including hibernate cfg file 【发布时间】:2016-02-01 14:09:53 【问题描述】:

Hibernate-cfg.xml 未添加到 war 类文件夹中。我正在使用下面的脚本将 web 应用程序部署到 tomcat。复制后,当我启动 tomcat 时,gettign 以下错误 eNotFoundException:类路径资源 [hibernate.cfg.xml] 无法解析 URL,因为它不存在

应用插件:'java' 应用插件:'战争' 源兼容性 = 1.7 应用插件:'eclipse' 存储库 mavenCentral() 依赖

        compile("javax.servlet:jstl:1.2")
        compile("org.springframework:spring-context:4.0.3.RELEASE")
        compile("org.springframework:spring-webmvc:4.0.3.RELEASE")
        compile("org.springframework:spring-web:4.0.3.RELEASE")
        compile("org.springframework:spring-aop:4.0.3.RELEASE")
         compile("org.springframework:spring-aspects:4.0.3.RELEASE")
         compile("org.springframework:spring-beans:4.0.3.RELEASE")
         compile("org.springframework:spring-core:4.0.3.RELEASE")
         compile("org.springframework:spring-expression:4.0.3.RELEASE")
         compile("org.springframework:spring-jdbc:4.0.3.RELEASE")
         compile("org.springframework:spring-orm:4.0.3.RELEASE")
         compile("org.eclipse.persistence:javax.persistence:2.0.0")
         compile("antlr:antlr:2.7.7")
         compile("commons-logging:commons-logging:1.1.1")
         compile("org.hibernate:hibernate-commons-annotations:3.2.0.Final")
          compile("org.hibernate:hibernate-core:4.3.5.Final")
           compile("org.apache.derby:derbyclient:10.12.1.1")  
           compile("javax.validation:validation-api:1.0.0.GA") 
            compile("org.slf4j:slf4j-api:1.7.5")



    
    task deploy (dependsOn: war)
        copy 
            from "build/libs"
            into "C:/soft/apache-tomcat-7.0.67/webapps"
            include "*.war"
        
    
    /*task startTomcat(dependsOn:deploy,type:Exec) 
        workingDir  "C:/mdi/soft/apache-tomcat-7.0.67/bin"
        commandLine 'cmd', '/c', 'startup.bat'
    */
    task startTomcat << 
       def processBuilder = new ProcessBuilder(['cmd','/c','startup.bat'])
       processBuilder.directory(new File("C:/soft/apache-tomcat-7.0.67/bin"))
       processBuilder.start()
    
    // Set source directory
    // War file name
    war
    
    war.baseName = 'userregisteration'

    project.webAppDirName = 'WebContent'
    sourceSets

            main 

                java 

                    srcDir 'src'


                     

                 
               
     

【问题讨论】:

【参考方案1】:

在你的战争任务中添加一个 from 闭包:

from(<directory containing Hibernate-cfg.xml>)
    into <'directory in the war in which you'd like the file to be placed'>
    include 'Hibernate-cfg.xml'

这也是非常基本的。我建议也许再次查看 Gradle 手册,以更好地了解如何处理文件。

【讨论】:

我通过在资源文件夹中创建休眠 cfg 文件找到了解决方案。 // 设置源目录war project.webAppDirName = 'WebContent' sourceSets main java srcDir 'src' resources srcDir 'resources'

以上是关于Gradle 战争命令不包括休眠 cfg 文件的主要内容,如果未能解决你的问题,请参考以下文章

休眠命名查询

从 JAR 文件运行应用程序时找不到 hibernate.cfg.xml 错误

休眠XML配置文件

如何为 mysqlcluster 创建休眠配置文件?

如何使用 Spring Boot“bootJar”插件创建 gradle 任务以生成爆炸性战争?

linux 基础命令