autoscript packed 文件地址:http://pan.baidu.com/s/1dDvgcO5

如果需要项目源码的话,可以留下邮箱,先声明一下,该工具主要是为了实现自动同步输出代码类文件的功能,所以代码写得并不是很规范什么的,没太大的参考意义,主要还是工具的实用性。

数据类和常量的配置基本就是前面所说明的那些了,现在来说一下怎么执行配置文件。执行配置文件需要写一个批处理文件,格式如下

java -classpath ./lib/*; AutoScript -?

这是一个执行 java 程序的标准语句,当然,再执行命令前是需要设置好 java 的环境变量的。

classpath 参数指定执行 java 类所需要的包依赖,AutoScript 指需要执行的 java 类,最后是 AutoScript 脚本类所需要的参数,参数的取值为:

-? : 表示帮助,输出 AutoScript 可以接收的参数,也可以用 -help 代替,当有该参数时,会忽略其它参数

-module : 表示需要执行什么功能模块,合法的参数为 -module macro(表示输出常量),-module object(表示输出 java 和 as3 公用数据类),-module database(表示输出 java 和 as3 公用数据类,以及 mysql 的建表脚本)

-template : freemaker 需要的输出文件模板路径,即 packed 文件夹下的 templates 文件夹

-config : 表示相关功能模块的配置文件路径,macro 功能模块只能接收一个配置文件路径,object 和 database 功能模块可以接收多个配置文件路径

-javaoutput : 表示 java 类文件的输出目录,可以指定为相对路径,也可以是绝对路径。如果不指定该参数,则不输出 java 相关文件

-javapackage : 表示 java 类文件的包名

-as3output : 表示 as3 类文件的输出目录,可以指定为相对路径,也可以是绝对路径。如果不指定该参数,则不输出 as3 相关文件

-javapackage : 表示 java 类文件的包名

-as3alias : as3 与 java 数据类的映射文件类名

-databaseoutput : mysql 脚本文件输出目录。如果不指定该参数,则不输出数据库 mysql 相关文件

-databasename : mysql 脚本文件数据库名字

每个执行命令都有固定格式 : java -classpath ./lib/*; AutoScript -template ./templates/  -module xxx

功能模块 -module macro 需要后续参数 -config xxx -javaoutput xxx -javapackage xxx -as3output xxx -as3package xxx,其中 -config 参数是必须的

功能模块 -module object 需要后续参数 -config xxx xxx -javaoutput xxx -javapackage xxx -as3output xxx -as3package xxx -as3alias xxx,其中 -config 参数是必须的

功能模块 -module database 需要后续参数 -config xxx xxx -javaoutput xxx -javapackage xxx -as3output xxx -as3package xxx -as3alias xxx -databaseoutput xxx  -databasename xxx,其中 -config 参数是必须的

需要注意的是,输出数据类时最好用一条批处理,-config 参数指定所有数据类配置文件,这样 -as3alias 就只用生成一个,在客户端初始化时,也就只用调用一次数据类的映射类。但是功能模块 object 和 database 输出的数据类的映射没办法输出到一个 as3alias 映射类中,所以在 object 功能模块和 database 功能模块中的 -as3alias 参数值最好不要相同。

说完了,可能还是有些不理解,下面说明一下 packed 文件夹下的 execute_sample.bat 脚本吧。


::打印 AutoScript 支持的命令
java -classpath ./lib/*; AutoScript -?

查看 AutoScript 支持的参数,如图


::输出 宏文件
java -classpath ./lib/*; AutoScript -template ./templates/ ^
-module macro ^
-config ./samples/macrosSample.xml ^
-javaoutput ./output/java/com/vo/ ^
-javapackage com.vo ^
-as3output ./output/as3/com/vo/ ^
-as3package com.vo

输出 packed/samples 文件夹下的常量配置文件 macrosSample.xml(每行末的 ^ 符号是 windows 的批处理文件中连接 2 行的转义符)

-module 指定了输出常量功能模块

-config 参数指定了常量配置文件 samples 目录下的 macrosSample.xml 文件

-javaoutput 指定了输出 java 常量类文件的目录为 packed 文件夹下的 output/java/com/vo/

-javapackage 指定了 java 常量类的包路径

-as3output 指定了输出 as3 常量类文件的目录为 packed 文件夹下的 output/as3/com/vo/

-as3package 指定了 as3 常量类的包路径

输出文件目录如图

 


::输出类文件
java -classpath ./lib/*; AutoScript -template ./templates/ ^
-module object ^
-config ./samples/objectsSample.xml ./samples/objectsSample2.xml ^
-javaoutput ./output/java/com/vo/ ^
-javapackage com.vo ^
-as3output ./output/as3/com/vo/ ^
-as3package com.vo ^
-as3alias AliasRegister

输出 packed/samples 文件夹下的 objectsSample.xml 和 objectsSample2.xml。

-module 指定输出 as3 和 java 数据类同步功能模块

-config 指定了两个数据类配置文件 objectsSample.xml 和 objectsSample2.xml

-as3alias 指定了 as3 和 java 数据类映射类,该映射类用于客户端,在客户端初始化时需要调用 AliasRegister.register(),使从服务端获取的对象能转换成对应的 as3 对象

package com.vo
{
import flash.net.registerClassAlias; /**
* 注册与后端对应的实体类
* 2014-05-24 17:56:25
*/
public class AliasRegister
{ //============================================================================
//PROPERTY
//============================================================================
/** 是否已注册 */
private static var $registered:Boolean = false;
//============================================================================
//PUBLIC
//============================================================================
/** 注册别名 */
public static function register():void
{
if ($registered) return;
$registered = true; registerClassAlias("com.vo.TUserVO", com.vo.TUserVO);
} }
}

其它参数同上,输出文件目录如图


::输出数据库脚本文件
java -classpath ./lib/*; AutoScript -template ./templates/ ^
-module database ^
-config ./samples/databaseSample.xml ^
-javaoutput ./output/java/com/vo/ ^
-javapackage com.vo ^
-as3output ./output/as3/com/vo/ ^
-as3package com.vo ^
-as3alias AliasRegister ^
-databaseoutput ./output/java/com/vo/ ^
-databasename mysql_database

输出 packed/samples 文件夹下的 databaseSample.xml。

-module 指定了输出 as3、java 和 mysql 脚本同步功能模块

-databaseoutput 指定 mysql 脚本输出到 packed/output/java/com/vo/ 下

-databasename 指定了mysql 数据库名字,以及脚本文件名为 mysql_database

输出目录如图

as3+java+mysql(mybatis) 数据自动工具(七) - 完结的更多相关文章

  1. as3+java+mysql(mybatis) 数据自动工具(一)

    在页游中,大部分的开发模式都是:客户端(as3)+ 服务端(java)+ 数据库(mysql). 在这3个部分会有一个相同的部分就是数据结构.比如一个用户数据,在客户端使用类 UserVO(as3) ...

  2. as3+java+mysql(mybatis) 数据自动工具(四)

    现在介绍一下只配置 as3 与 java 公用的数据类,这种配置一般是该数据类只需要在 as3 与 java 之间转换,跟数据库没有关系.比如在客户端与服务端的数据交换中,需要定义一个统一返回请求的数 ...

  3. as3+java+mysql(mybatis) 数据自动工具(三)

    介绍一下数据类配置,该数据类配置主要用于需要将数据库 mysql 数据转换成 java 对象,再转换为 as3 对象的数据类 配置文件为 xml 格式. <objects> <obj ...

  4. as3+java+mysql(mybatis) 数据自动工具(二)

    AutoScript 项目结构如下图 ---AutoScript.java 为程序入口 ---com.autoscript.object 同步 as3 和 java 的数据类 ---com.autos ...

  5. as3+java+mysql(mybatis) 数据自动工具(五)

    现在介绍常量的配置,主要用于客户端(as3)与服务端(java)之间的常量同步,比如错误码.请求标识等 配置格式: <macros name="Macros" groupSt ...

  6. as3+java+mysql(mybatis) 数据自动工具(六)

    这篇来写一些常量定义的实例.我一般在配置常量的时候,都会让 bitOffset = 20,这样是一个比较好的分配,就是每个分组可以有 0xFFFFF(1048575) 个常量,0xFFF(4095) ...

  7. java+Mysql大数据的一些优化技巧

    众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法; 例如,我们要将 ...

  8. Java+MySql图片数据保存与读取的具体实例

    1.创建表: drop table if exists photo;CREATE TABLE photo (    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ...

  9. Java+MySql图片数据保存

    之前一直没有做过涉及到图片存储的应用,最近要做的东东涉及到了这个点,就做了一个小的例子算是对图片存储的初试吧! 1.创建表: drop table if exists photo; CREATE TA ...

随机推荐

  1. 解决MS Azure 不能ping的问题

    PsPing v2.01 PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use ...

  2. js原生removeclass方法

    //如果列表中有存在给定的值就删除 // function removeClass(ele,txt){ // var str = ele.className, // ary = str.split(/ ...

  3. 【win8技巧】去掉Win8导航菜单下面的这台电脑其他的文件夹

    win8 删除 上传 下载 这台电脑 左侧导航 另存为中的 视频.图片.文档.下载的方法!落雨 win8 Windows 8.1  默认将视频.图片.文档.下载.音乐.桌面等常用文件夹也显示在其中了, ...

  4. python参考手册--第2章词汇和语法约定

    1.续行符\ 三引号.().{}.[]中的内容不需要续行符 2.空格缩进 优选空格作为缩进,不要用tab,这是因为不同操作系统下tab对应的空格不一样,而python是通过严格的空格来控制语句块的. ...

  5. POJ3122Pie(二分)

    http://poj.org/problem?id=3122 题意 :这个题最主要的就是审题要仔细,翻译不要漏句子.题目讲的是我要过生日,要给好友分馅饼(还有自己也想要一块),怕引起不公,所以每个人大 ...

  6. 学点PYTHON基础的东东--数据结构,算法,设计模式---访问者模式

    说实话,感觉不是特别多,可能没遇到过多场面, 所以对应用场景没感觉吧. 反正,各种模式就是把类的实例传来传去,久而久之,产生了一些规律...:) # 轮子,引擎, 车身这些定义好了都不需要变动 cla ...

  7. SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-005-Pizza例子的订单流程()

    一. 1.订单流程定义文件order-flow.xml <?xml version="1.0" encoding="UTF-8"?> <flo ...

  8. 怎样成为一名PHP专家?

    当浏览各类与PHP相关的博客时,比如Quora上的问题,谷歌群组,简讯和杂志,我经常注意到技能的等级分化.问题都类似于“我如何连接到MySQL数据库?”或者“我该如何扩展邮件系统才能在每小时发送超过一 ...

  9. D3D游戏编程系列(一):DXLib的介绍

    这篇文章里我准备向大家介绍下我封装的一个基础D3D库:DXLib.有了这样一个类库,可以减少很多无用功以及繁琐的工作,使我们的效率大大提高. DXLib.h #define DIRECTINPUT_V ...

  10. WinAPI——Windows 消息

    消息 值  注释  WM_NULL $0000   WM_CREATE $0001   WM_DESTROY $0002   WM_MOVE $0003   WM_SIZE $0005   WM_AC ...