play framework如何进行模块化开发--学习笔记(借鉴同事、博客等资料自己试验通过!)
2015-07-27 14:53
621 查看
1.第一步:先创建一个play项目,我创建play项目时,进入的目录是:..\playframework\samples-and-tests\,然后开始创建工作。
play new app
2.第二步:创建一个公共模块
play new-module model
创建了以后,版本默认为0.1,打开model\conf\dependencies.yml即可看到。如我创建的文件如下:
self: play -> model 0.1
require:
- play
3.第三步:在model中增加任意代码,代码结构等同play的应用程序,比如添加一个control类、添加一个model类,so easy...
4.第四步:如何在app中引用model模块。
打开app\conf\dependencies.yml,不要搞错了啊,兄弟...,我的文件配置如下,添加了红色部分
# Application dependencies
require:
- play
- customerModules -> model 0.1
repositories:
- playLocalTestModulesRep:
type: local
artifact: ${application.path}/../[module]
contains:
- customerModules -> *
其中customerModules 是自定义的名字,下面要用到的如“- customerModules -> *”,model 0.1代表模块及版本,playLocalTestModulesRep,这个也可以随便你定义,type,这个是说明模块代码在本地,artifact是标记路径,照写就好,当然你也可以写绝对路径,例如:"D:/play/workspace/modulecoupon",千万注意斜杠的写法啊,写错了就悲剧了,用双引号括起来,contains标记包含哪些内容,这里是全包含。
千万注意一个东西:artifact: ${application.path}/../[module],其中/../这个含义是上一级目录的意思,我在这块弄了半天,一直提示找不到模块,模块路径出错。
例如:[b]artifact: ${application.path}/../[module],最终路径指playframework/model下的模块。[/b]
[b][b]artifact: ${application.path}/[module],最终路径指playframework/app/model下的模块。
[/b][/b]
5.第五步:执行一下命令:play dependencies app ,此时添加依赖模块到项目中model会以链接文件夹的形式存在于app中,执行完以后如果正确就生成一个文件夹,但是还不能显示成链接文件夹的形式,这时要做第六步。其中还有一个文件千万不要弄丢了,本操作会在app项目下生成一个modules\app的文件,这里面写的是模块的路径,其中写的内容最好写相对路径,便于程序的移植、部署。有时候我是在是分不清,到底是把困难隔过去好,还是一追到底好。读书的话,把读不懂的隔过去,接着看,看多了,前面不懂的地方自然而然的就懂了。如果搞程序,攻难题,真不好判断哪种好,攻关总是要花费巨量的时间···
6.第六步:play eclipsify app ,然后导入到eclipse里即可。如果之前你已经导入到eclipse里了,这里必须再导入一次,然后刷新一下项目即可。
7.以后对modelapp执行的任何修改都可以直接在app里操作。包括新增类文件等。
8.全部开发完,可以执行play build-module model,将其打包发布,分享给其他项目使用。
注意事项:
1.play dependencies app ,有时候会发现这条命令执行失败,可以增加参数----verbose,显示详细的加载信息,定位错误,可能会很长,主要看最下边的一些报警、错误信息。如果失败,
2.如果已经增加依赖模块,之后又想取消,除了修改denpendencies.yml,再执行一遍play dependencies app --sync即可。
3.repositories:即可以来源与本地文件夹,也可以来源maven仓储或者是git路径
4.如果不是开发play系统插件功能,请不要处理model项目中的src文件夹,此文件夹里的内容在build-module时,会编译成jar包,作为play的插件,在应用程序启动时执行。
模块的引入:
如果你上面的步骤都走完而且都正确,play启动时就自动加载了,否则需要在application.conf中添加一句话。
# Additional modules
# ~~~~~
#module.coupon=${application.path}/../coupon
模块的构成(这里引用别人的文章):
由下面的内容可以看到,模块的构成和一般的play应用程序很类似。都有models、views、tags、controllers、conf目录。
其中的区别就是module中不应该有application.conf文件。而在模块的根目录中多出来2个文件,1,build.xml:ant文件,用来编译模块,并根据编译后的代码生成以模块名字命名的jar包,放置到lib目录;
2,commands.py:python文件,可以在里面增加一些特殊的指定,比如play firstmodule:hello
其他额外需要的jar包也放置在lib目录,在模块被加载的时候,这里的所有jar包会自动放置到classpath中。
src文件夹放置模块的内容,包含模块的逻辑和模块插件的代码,同时包含play.plugins文件,play.plugins文件中包含一行内容1000:play.modules.spring.SpringPlugin,前面的数字代码应用程序加载模块时的顺序,数字越小,越早被加载。后半部分代码模块插件的入口。
当使用Play new-module命令来创建模块的时候,会自动创建上面的所有文件和文件夹,如果其中的部分文件、文件夹不需要,那么最好删除使得模块看起来更加容易理解。
文件如下:
app/controllers/firstmodule
app/models/firstmodule
app/views/firstmodule
app/views/tags/firstmodule
build.xml
commands.py
conf/messages
conf/routes
lib
src/play/modules/firstmodule/MyPlugin.java
src/play.plugins
play new app
2.第二步:创建一个公共模块
play new-module model
创建了以后,版本默认为0.1,打开model\conf\dependencies.yml即可看到。如我创建的文件如下:
self: play -> model 0.1
require:
- play
3.第三步:在model中增加任意代码,代码结构等同play的应用程序,比如添加一个control类、添加一个model类,so easy...
4.第四步:如何在app中引用model模块。
打开app\conf\dependencies.yml,不要搞错了啊,兄弟...,我的文件配置如下,添加了红色部分
# Application dependencies
require:
- play
- customerModules -> model 0.1
repositories:
- playLocalTestModulesRep:
type: local
artifact: ${application.path}/../[module]
contains:
- customerModules -> *
其中customerModules 是自定义的名字,下面要用到的如“- customerModules -> *”,model 0.1代表模块及版本,playLocalTestModulesRep,这个也可以随便你定义,type,这个是说明模块代码在本地,artifact是标记路径,照写就好,当然你也可以写绝对路径,例如:"D:/play/workspace/modulecoupon",千万注意斜杠的写法啊,写错了就悲剧了,用双引号括起来,contains标记包含哪些内容,这里是全包含。
千万注意一个东西:artifact: ${application.path}/../[module],其中/../这个含义是上一级目录的意思,我在这块弄了半天,一直提示找不到模块,模块路径出错。
例如:[b]artifact: ${application.path}/../[module],最终路径指playframework/model下的模块。[/b]
[b][b]artifact: ${application.path}/[module],最终路径指playframework/app/model下的模块。
[/b][/b]
5.第五步:执行一下命令:play dependencies app ,此时添加依赖模块到项目中model会以链接文件夹的形式存在于app中,执行完以后如果正确就生成一个文件夹,但是还不能显示成链接文件夹的形式,这时要做第六步。其中还有一个文件千万不要弄丢了,本操作会在app项目下生成一个modules\app的文件,这里面写的是模块的路径,其中写的内容最好写相对路径,便于程序的移植、部署。有时候我是在是分不清,到底是把困难隔过去好,还是一追到底好。读书的话,把读不懂的隔过去,接着看,看多了,前面不懂的地方自然而然的就懂了。如果搞程序,攻难题,真不好判断哪种好,攻关总是要花费巨量的时间···
6.第六步:play eclipsify app ,然后导入到eclipse里即可。如果之前你已经导入到eclipse里了,这里必须再导入一次,然后刷新一下项目即可。
7.以后对modelapp执行的任何修改都可以直接在app里操作。包括新增类文件等。
8.全部开发完,可以执行play build-module model,将其打包发布,分享给其他项目使用。
注意事项:
1.play dependencies app ,有时候会发现这条命令执行失败,可以增加参数----verbose,显示详细的加载信息,定位错误,可能会很长,主要看最下边的一些报警、错误信息。如果失败,
2.如果已经增加依赖模块,之后又想取消,除了修改denpendencies.yml,再执行一遍play dependencies app --sync即可。
3.repositories:即可以来源与本地文件夹,也可以来源maven仓储或者是git路径
4.如果不是开发play系统插件功能,请不要处理model项目中的src文件夹,此文件夹里的内容在build-module时,会编译成jar包,作为play的插件,在应用程序启动时执行。
模块的引入:
如果你上面的步骤都走完而且都正确,play启动时就自动加载了,否则需要在application.conf中添加一句话。
# Additional modules
# ~~~~~
#module.coupon=${application.path}/../coupon
模块的构成(这里引用别人的文章):
由下面的内容可以看到,模块的构成和一般的play应用程序很类似。都有models、views、tags、controllers、conf目录。
其中的区别就是module中不应该有application.conf文件。而在模块的根目录中多出来2个文件,1,build.xml:ant文件,用来编译模块,并根据编译后的代码生成以模块名字命名的jar包,放置到lib目录;
2,commands.py:python文件,可以在里面增加一些特殊的指定,比如play firstmodule:hello
其他额外需要的jar包也放置在lib目录,在模块被加载的时候,这里的所有jar包会自动放置到classpath中。
src文件夹放置模块的内容,包含模块的逻辑和模块插件的代码,同时包含play.plugins文件,play.plugins文件中包含一行内容1000:play.modules.spring.SpringPlugin,前面的数字代码应用程序加载模块时的顺序,数字越小,越早被加载。后半部分代码模块插件的入口。
当使用Play new-module命令来创建模块的时候,会自动创建上面的所有文件和文件夹,如果其中的部分文件、文件夹不需要,那么最好删除使得模块看起来更加容易理解。
文件如下:
app/controllers/firstmodule
app/models/firstmodule
app/views/firstmodule
app/views/tags/firstmodule
build.xml
commands.py
conf/messages
conf/routes
lib
src/play/modules/firstmodule/MyPlugin.java
src/play.plugins
相关文章推荐
- 了解Javascript的模块化开发
- mark 查找jar之间的版本依赖关系 versioneye
- 请教各位C/VC高手一个极其郁闷的问题
- Visual Editor1.3在Eclipse 3.3.2中的安装
- wxWidgets-2.8.9在VC++ 2005 Express环境下的安装与配置
- 用于线性代数的Ruby模块linalg 0.32发布收藏(来自ruby-talk)
- MySQL connector/C++
- Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)
- Android,开源还是封闭?
- External dependencies
- [故障]ORA-01031: 权限不足
- maven找jar包方法
- autobook 3
- auto5
- 13个不可不知的ASP.NET MVC扩展点
- Android ADT升级到17.0版本后的一些问题
- exec: g++: not found
- Oracle常用数据字典
- GLUI库的配置
- SpringSide 3.0 开发人员快速开始指南