热代码修复正在编译但未在 grails 2.4.4 中选择
Posted
技术标签:
【中文标题】热代码修复正在编译但未在 grails 2.4.4 中选择【英文标题】:Hot code fix is compiling but not picking in grails 2.4.4 【发布时间】:2015-04-19 13:03:57 【问题描述】:在 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"
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'
在 index.gsp 中添加了一行:
Click
创建的控制器名称 Student
打包 project.bidesi.check 类 StudentController def index()
def blankAction()
render(view:"/student/blankAction", model:[mineData:"ppppp"])
创建的 gsp 名称空白Action.gsp
示例标题
样品线
$mineData所以当我在控制器中更改 mineData 的值时,它不会反映在 gsp 中,但在输出提示中我收到如下消息:
| Server running. Browse to http://localhost:8080/checkNew
| Compiling 1 source files.
即使我尝试使用命令
grails -reloading run-app
但它没有帮助。
【问题讨论】:
请提供一个完整的例子。或者至少是控制器以及没有拾取哪些更改。 添加了控制器和gsp代码 【参考方案1】:看来您的问题出在 grails.project.fork 设置中。我建议按照此处Grails 2.3.0 Auto-reloading not working
明确设置您的分叉设置【讨论】:
以上是关于热代码修复正在编译但未在 grails 2.4.4 中选择的主要内容,如果未能解决你的问题,请参考以下文章
history.push 正在更改 url 但未在反应中呈现组件
EntityFramework.dll 中出现“System.Data.Entity.Core.MappingException”类型的异常,但未在用户代码中处理