package org.nutz.mole.impl; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import org.nutz.lang.Files; import org.nutz.log.Log; import org.nutz.log.Logs; import org.nutz.mole.ConfigPool; import org.nutz.mole.Creator; import org.nutz.mole.MoleContext; import org.nutz.mole.meta.ZTable; public class HelpFileCreater implements Creator { private static final Log log = Logs.get(); /** * 创建web.xml 创建dao.js 创建index.html */ public void create(MoleContext context) { ConfigPool config = context.getConfig(); List<ZTable> tables = context.getTables(); Map<String, Object> datas = new HashMap<String, Object>(); datas.put("packageName", config.getProject().get("packageName")); FreemarkerHelp.make(config.getProject().get("projectRoot") + "WebContent/WEB-INF/web.xml", "web.xml.ftl", datas); FreemarkerHelp.make(config.getProject().get("srcFileRoot") + "MainModule.java", "MainModule.ftl", datas); datas.put("db_driver", config.getProject().get("db_driver")); datas.put("db_url", config.getProject().get("db_url")); datas.put("db_username", config.getProject().get("db_username")); datas.put("db_password", config.getProject().get("db_password")); log.debugf("输出Dao配置文件:%s", config.getProject().get("projectRoot") + "conf/conf/dao.js"); FreemarkerHelp.make(config.getProject().get("projectRoot") + "conf/conf/dao.js", "dao.js.ftl", datas); datas.put("projectName", config.getProject().get("projectName")); datas.put("zTables", tables); log.debugf("输出首页文件:%s",config.getProject().get("projectRoot") + "WebContent/index.html"); FreemarkerHelp.make(config.getProject().get("projectRoot") + "WebContent/index.html", "index.html.ftl", datas); try { log.debug("准备复制库文件"); Files.copyDir(new File("./lib"), new File(config.getProject().get("projectRoot") + "WebContent/WEB-INF/lib/")); log.debug("准备复制JS文件"); Files.copyDir( new File("./templates/js"), new File(config.getProject().get("projectRoot") + "WebContent/js/")); log.debug("准备复制log4j配置文件"); Files.copyFile( new File("./templates/log4j.properties"), new File(config.getProject().get("projectRoot") + "conf/log4j.properties")); log.debug("准备复制多国语言配置文件"); Files.copyFile( new File("./templates/msg.properties"), new File(config.getProject().get("projectRoot") + "conf/msg/msg.properties")); log.debug("所有操作完成.恭喜."); } catch (IOException e) { e.printStackTrace(); } } }