最近在学grails框架,因为其敏捷性让我非常喜欢,不过有点让人恼怒的是也许因为grails框架太新了,所以关于grails的书籍很少,而且市面上的书籍大部分都是2007或者2009年的,官方文档又都是英文的,原谅我英语太差了~参照这些书籍学习却使用官方提供的最新grails,难免会有很多不同,需要不断尝试才能解决问题!(解决办法在随笔最后,不想看过程的可直接拉到最后)

回归正题,如果你在看grails权威指南(07版),甚至09年的一些关于grails的书籍,都可能会发生一种情况:使用grails的generate-*(generate-all等,参照下图图一)会发现命令无效的情况(图二)

图一

图二

顺便提一下,对于初学者(包括我自己)在刚开始使用grails命令的时候直接输入:grails help,会发现命令列表中没有上述或者一些其他的命令,如下图所示:

图三

对比上图可以发现没有generate-*命令,这是怎么回事呢?其实也很简单,图二的所有命令都是针对一个grails工程的,而图一所示的命令还包括了针对工程中各项文件的命令,出现二者的区别就在于:使用grails命令时是否是在grails工程里面。

拿图说话吧,在windows的情况下直接调出cmd窗口是类似于这样的:

图四

并不会进入grails工程里面,比如我有个叫myFirst的grails工程,如果使用cd myFirst后,再使用grails help就会出现图一所示的命令行了。

回到generate-*命令出现无效情况中,我可以确保自己在domian文件夹中一定有个Hello,如图五:

图五

那么为什么会出现这种情况呢?毫无疑问generate-*是对的,我们看下图五中Hello这个domian的路径,是不是不直接在domian文件夹下而多了一层以工程名(全部小写)的文件夹?

所以generate-*自然在domain根目录下是找不到这个领域模型的,那么也许有人会问,如果我把Hello这个领域模型放到domain的根目录下是不是就可以了呢?

不妨一试,我把book(我换了一个,参照图五可以看到它是没有被generate-all执行过的)放到了domain的根目录下(注意地址栏):

图六

使用generate-all命令,会出现下面的情况:

图七

很抱歉,这样会报错。所以目前认为这是不可行的。

那么该怎么解决图二所展示的问题呢?我查阅了一些其他牛人的说法,大致为把:grails generate-all domain-class-name换为grails generate-all  projectName.domian-class。注意其中有个点,这个很重要。

我尝试了一下,使用grails generate-all  myFirst.Book(我建立了一个名称为myFirst的grails工程),结果如下:

图八

结果还是一样,难道大神的说法是错误的吗?回到图五,其实我们会发现,在domain下有个叫myfirst的文件夹,与工程名很类似,但显然和工程名不一样,我尝试把grails generate-all myFirst.Book改为grails generate-all myfirst.Book,结果如下:

图九

图十


成功了,综上所述,这种问题的解决办法应该是把grails generate-* domain-class-name改为grails generate-* (domain下相应的文件夹名称).domain-class-name。

还有点需要注意的是,domain-class-name必须要和生成的groovy类名一致,区分大小写。


Grails笔记二:grails 2.4.3版本下generate-*失效问题解析的更多相关文章

  1. Grails笔记一:windows8.1操作系统cmd下grails命令无效

    最近决定使用intellij idea工具来开发基于Grails框架的应用程序,,在安装好jdk 1.7以及配置好jdk和grails环境变量后进行grails测试,在win8.1的命令行窗口中输入以 ...

  2. 【工作笔记二】ASP.NET MVC框架下使用MVVM模式

    ASP.NET MVC框架下使用MVVM模式 原文:http://www.cnblogs.com/n-pei/archive/2011/07/21/2113022.html 对于asp.net mvc ...

  3. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

  4. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  5. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  6. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  7. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  8. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  9. DirectX11笔记(二)--Direct3D初始化1之基本概念

    原文:DirectX11笔记(二)--Direct3D初始化1之基本概念 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/art ...

随机推荐

  1. VMware workstation批量创建虚拟机和自动化安装操作系统(一)

    一. 简述 作为从事IT行业运维工作的Linuxer,大多情况下需要在测试环境中部署业务系统并进行测试,在没有足够的计算存储网络条件下,使用虚拟机进行虚拟集群的创建和使用,是一种不错的学习和实践方式. ...

  2. call和apply和bind区别

    call和apply特征一样 都是用来调用函数 立即调用 但是可以在调用函数的同时 通过第一个参数指定函数内部this的指向 call 调用的时候 参数必须以参数列表的形式进行传递 也就是以逗号分隔的 ...

  3. javascript中的闭包(Closure)的学习

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面是我在网上通过学习阮一峰老师的笔记,感觉总结很不错,特记录于此. 一.变量的作用域 要理解 ...

  4. akoj-1076-Encoding

    Encoding Time Limit:1000MS  Memory Limit:65536K Total Submit:62 Accepted:35 Description Given a stri ...

  5. 转载的log4cplus使用指南

    以下转载的log4cplus使用指南的版本可能不是最新,仅作参考了解.应以最新安装包中的示例代码为准. 目    录1 Log4cplus简介    52 安装方法    53 主要类说明    64 ...

  6. 两个List比较各自对象的属性相同的问题

    最近做checkbox默认勾选的时候,涉及到两个list直接比较彼此对象的Id属性是否相同的问题.能力有限,想到这个笨方法. 创建一个Bean: public class Bean { private ...

  7. Oracle数据库 拾漏补缺

    select语句的基本使用 可以查询需要的列,行,可以进行多表链接,连接查询. from p_emp e select 后面跟的是要显示的结果,可以是通过运算或者连接符号得出的伪列 null  空值 ...

  8. webpack的四个核心概念介绍

    前言 webpack 是一个当下最流行的前端资源的模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后 ...

  9. 关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error【社交系统研发日记十】

    什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).社交系统 ...

  10. AWK求和、平均值、最值

    --AWK求和.平均值.最值------------------------2014/02/14  打包当前目录下的所有文件 ls | awk '{ print "tar zcvf &quo ...