热代码修复正在编译,但没有在grails 2.4.4中进行选择

时间:2015-02-18 13:43:51

标签: grails

在grails 2.4.4中创建了一个新应用程序,并创建了一个控制器和gsp文件。在开发运行模式下,我正在更改代码 - gsp文件更改反映在浏览器中而不是控制器代码,但在这两种情况下我都收到消息

Applying changes to application.
| Compiling 1 source files.

我的1)Buildconfig.groovy和2. Config.groovy文件列在下面

1)BuildConfig.groovy

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"

grails.project.fork = [
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
    //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    // configure settings for the run-app JVM
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the Console UI JVM
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits("global") {
        // specify dependency exclusions here; for example, uncomment this to disable ehcache:
        // excludes 'ehcache'
    }
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
    checksums true // Whether to verify checksums on resolve
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

    repositories {
        inherits true // Whether to inherit repository definitions from plugins

        grailsPlugins()
        grailsHome()
        mavenLocal()
        grailsCentral()
        mavenCentral()
        // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
        //mavenRepo "http://repository.codehaus.org"
        //mavenRepo "http://download.java.net/maven/2/"
        //mavenRepo "http://repository.jboss.com/maven2/"
    }

    dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        // runtime 'mysql:mysql-connector-java:5.1.29'
        // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
        test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"
    }

    plugins {
        // plugins for the build system only
        build ":tomcat:7.0.55"

        // plugins for the compile step
        compile ":scaffolding:2.1.2"
        compile ':cache:1.1.8'
        compile ":asset-pipeline:1.9.9"

        // plugins needed at runtime but not for compilation
        runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18"
        runtime ":database-migration:1.4.0"
        runtime ":jquery:1.11.1"

        // Uncomment these to enable additional asset-pipeline capabilities
        //compile ":sass-asset-pipeline:1.9.0"
        //compile ":less-asset-pipeline:1.10.0"
        //compile ":coffee-asset-pipeline:1.8.0"
        //compile ":handlebars-asset-pipeline:1.3.0.3"
    }
}
  1. Config.groovy中

    //搜索要合并到主配置中的配置文件的位置;     //配置文件可以是ConfigSlurper脚本,Java属性文件或类     //在ConfigSlurper格式的类路径中

    // grails.config.locations = [ "classpath:${appName}-config.properties",
    //                             "classpath:${appName}-config.groovy",
    //                             "file:${userHome}/.grails/${appName}-config.properties",
    //                             "file:${userHome}/.grails/${appName}-config.groovy"]
    
    // if (System.properties["${appName}.config.location"]) {
    //    grails.config.locations << "file:" + System.properties["${appName}.config.location"]
    // }
    
    grails.project.groupId = appName // change this to alter the default package name and Maven publishing destination
    
    // The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines)
    grails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']
    grails.mime.types = [ // the first one is the default format
        all:           '*/*', // 'all' maps to '*' or the first available format in withFormat
        atom:          'application/atom+xml',
        css:           'text/css',
        csv:           'text/csv',
        form:          'application/x-www-form-urlencoded',
        html:          ['text/html','application/xhtml+xml'],
        js:            'text/javascript',
        json:          ['application/json', 'text/json'],
        multipartForm: 'multipart/form-data',
        rss:           'application/rss+xml',
        text:          'text/plain',
        hal:           ['application/hal+json','application/hal+xml'],
        xml:           ['text/xml', 'application/xml']
    ]
    
    // URL Mapping Cache Max Size, defaults to 5000
    //grails.urlmapping.cache.maxsize = 1000
    
    // Legacy setting for codec used to encode data with ${}
    grails.views.default.codec = "html"
    
    // The default scope for controllers. May be prototype, session or singleton.
    // If unspecified, controllers are prototype scoped.
    grails.controllers.defaultScope = 'singleton'
    
    // GSP settings
    grails {
        views {
            gsp {
                encoding = 'UTF-8'
                htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
                codecs {
                    expression = 'html' // escapes values inside ${}
                    scriptlet = 'html' // escapes output from scriptlets in GSPs
                    taglib = 'none' // escapes output from taglibs
                    staticparts = 'none' // escapes output from static template parts
                }
            }
            // escapes all not-encoded output at final stage of outputting
            // filteringCodecForContentType.'text/html' = 'html'
        }
    }
    
    
    grails.converters.encoding = "UTF-8"
    // scaffolding templates configuration
    grails.scaffolding.templates.domainSuffix = 'Instance'
    
    // Set to false to use the new Grails 1.2 JSONBuilder in the render method
    grails.json.legacy.builder = false
    // enabled native2ascii conversion of i18n properties files
    grails.enable.native2ascii = true
    // packages to include in Spring bean scanning
    grails.spring.bean.packages = []
    // whether to disable processing of multi part requests
    grails.web.disable.multipart=false
    
    // request parameters to mask when logging exceptions
    grails.exceptionresolver.params.exclude = ['password']
    
    // configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true')
    grails.hibernate.cache.queries = false
    
    // configure passing transaction's read-only attribute to Hibernate session, queries and criterias
    // set "singleSession = false" OSIV mode in hibernate configuration after enabling
    grails.hibernate.pass.readonly = false
    // configure passing read-only to OSIV session by default, requires "singleSession = false" OSIV mode
    grails.hibernate.osiv.readonly = false
    grails.reload.enabled = true
    environments {
        development {
            grails.logging.jul.usebridge = true
        }
        production {
            grails.logging.jul.usebridge = false
            // TODO: grails.serverURL = "http://www.changeme.com"
        }
    }
    
    // log4j configuration
    log4j.main = {
        // Example of changing the log pattern for the default console appender:
        //
        //appenders {
        }
    
        error  'org.codehaus.groovy.grails.web.servlet',        // controllers
               'org.codehaus.groovy.grails.web.pages',          // GSP
               'org.codehaus.groovy.grails.web.sitemesh',       // layouts
               'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
               'org.codehaus.groovy.grails.web.mapping',        // URL mapping
               'org.codehaus.groovy.grails.commons',            // core / classloading
               'org.codehaus.groovy.grails.plugins',            // plugins
               'org.codehaus.groovy.grails.orm.hibernate',      // hibernate integration
               'org.springframework',
               'org.hibernate',
               'net.sf.ehcache.hibernate'
    }
    
  2. 在index.gsp中添加了一行:

  3. Click

    1. 创建控制器名称Student

      package project.bidesi.check
      class StudentController {
          def index(){}

      def blankAction(){
          render(view:"/student/blankAction", model:[mineData:"ppppp"])
      }
      

      }

    2. 创建了gsp名称blankAction.gsp

                                     样本标题                   

      示例行

              $ {} mineData     

    3. 所以当我在控制器中更改mineData的值时它没有反映在gsp中,但在输出提示符中我得到的信息如下:

      | Server running. Browse to http://localhost:8080/checkNew
      | Compiling 1 source files.
      

      即使我尝试使用命令

      grails -reloading run-app
      

      但它没有帮助。

1 个答案:

答案 0 :(得分:1)

看来您的问题出在grails.project.fork设置中。我建议根据Grails 2.3.0 Auto-reloading not working

明确设置您的前叉设置