• as3+java+mysql(mybatis) 数据自动工具(七)


    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

    输出目录如图

     

  • 相关阅读:
    带宽利用率提升50%,腾讯云联网架构方案解析
    重构实践:基于腾讯云Elasticsearch搭建QQ邮箱全文检索
    存算分离下写性能提升10倍以上,EMR Spark引擎是如何做到的?
    秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
    降本提效,贝壳搜索推荐架构统一之路
    亿级用户,腾讯看点信息流推荐系统的架构挑战
    优秀程序员,如何提高架构能力?
    如何创建体元栅格?
    导出属性表字段结构
    去除镶嵌数据集中影像的黑边或白边
  • 原文地址:https://www.cnblogs.com/idoublewei/p/3749974.html
Copyright © 2020-2023  润新知