• mavenbos项目第一天(maven、远程部署、svn、easyui的使用。)


    BOS 项目第一天  环境搭建  

    1.  项目分析

    1.1.  产品和项目区别?

    产品 先投资 ,做出产品, 再去销售  (QQ360 )

    项目 投标 ,分为甲方 (项目应用方)和乙方 (项目开发方), 甲方先给乙方 项目前期款, 交付项目后,收取尾款  

    1.2.  BOS项目规模

    项目周期 1年多

    纯编码时间 3个多月 , 项目组开发人员 :20多人

    1.3.  系统分类

    OA 自动化办公

    CRM 客户关系管理

    ERP 是针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件

    BOS ERP 一个部分,在需求中需要和财务系统 、CRM系统 对接

    1.4.  软件开发流程

    需求调研 (分析) ---- 系统设计 --- 编码 --- 测试 --- 实施和运维

    1.5.  BOS 业务分析

    开发任务 三个业务模块

    基础设置模块(基础数据模块 ---- 物流基础数据 (取派人员信息、 区域信息 、 区域分配信息 、 线路信息 …. ) 对应 需求 2.6 章节

    取派模块 对应需求 2.7 业务受理 2.8 调度  ----- 接收客户业务诉求 ,将业务数据录入到系统

    中转模块 (物流中数据管理) ---- 2.9 以后

    两个系统功能模块 用户 权限

    时间安排 JBPM 4天 、搭建环境2天 、权限管理 1

    1.6.  项目开发环境

    开发环境 window + tomcat6/7 + myeclipse + mysql

    产品环境 linux (企业服务器版) + Oracle + WebLogic/JBOSS

    2.  项目导入

    bos 项目代码导入 myeclipse 开发工具

    建议新建web项目, 将代码对应部分复制到项目中 !

    MyEclipseEclipseMaven

    通常三个 source folder

    src 存放源码

    resourcesconfig 存放配置文件

    test  存放测试用例

    struts2 约定要求,将JSP页面 放入WEB-INF 下 !!!!  

    struts2 拦截器,拦截 Action的访问 !!!

    问题: Filter Interceptor 有何区别?

    Filter 可以拦截所有web 资源

    Interceptor 只能拦截Action  

    问题: 将很多JSP都放入WEB-INF 不能直接访问,通过Action访问,需要为每一个JSP配置一个Action吗?

    <!-- 需要进行权限控制的页面访问 -->

    <action name="page_*_*">

    <result type="dispatcher">

    /WEB-INF/pages/{1}/{2}.jsp

    </result>

    </action>

    访问 page_a_b.action  映射到 /WEB-INF/pages/a/b.jsp

    /page_common_index.action 主页 /WEB-INF/pages/common/index.jsp

    <jsp:forward page="/page_common_index.action"></jsp:forward> 

    问题: 主页Action 也需要走strutsFilter Filter 默认只在请求方式下拦截

    如果没有配置 dispatcher : forward 不会在转发情况下执行Filter

    3.  使用maven进行项目构建

    MyEclipse 自带maven 插件

    Eclipse 需要单独安装maven插件

    3.1.  Maven 在企业中怎么用的 ?

    Maven : 项目构建工具 ,进行项目编译、测试、打包、运行、发布 ….

    ² 使用 maven将工程进行组件化 ,项目分为 表现层、业务层、 数据层 属于maven创建 三个项目 ,分别进行三层开发

    ² Maven Jenkins hudson) 对项目进行持续集成

    ² 企业中搭建私服

    3.2.  建立maven骨架的项目,运行bos 

    1、 下载和解压 maven zip

    2、 在myeclipse 配置外部 maven

    3、 配置仓库setting文件 和 仓库位置

    默认位置 C:Documents and Settingsseawind.m2 (这个文件夹没有 settings,xml

    将解压maven目录/ conf/ settings.xml 复制 C:Documents and Settingsseawind.m2 

    settings.xml 指定本地仓库位置

    Maven 原理, 使用坐标导入jar包,先在本地仓库找,如果没有,会去网络上仓库下载 !

    4、 将 repository.rar 解压,覆盖本机原来 的仓库

    5、 在myeclipse 建立maven工程

    ² 可以自己选择骨架

    quickstart 骨架, javasemaven项目

    webapp 骨架, javaeemaven项目

    ² 使用simple project 骨架

    输入maven参数

    坐标 GroupId ArtifactId Version

    Packing 打包方式 : jar(给别人引入的)、pom(给别人继承的)、war (用来运行的)


    maven 项目结构分析

    src/main/java 存放项目源码

    src/main/resources 存放项目配置文件

    src/test/java 存放测试用例代码

    src/test/resources 存放测试配置文件

    src/main/webapp 文件夹用来存放页面代码

    6、 移植项目  

    将源码 src/main/java

    将配置文件 src/main/resources

    将页面 src/main/webapp  (WEB-INF 不要移动lib,只需要pagesweb.xml )

    7、 编写pom.xml

    使用坐标导入 jar

    只需要获取 需要项目坐标,就可以引入

    http://search.maven.org/

    http://mvnrepository.com/

    8、运行项目

    右键项目 – run as --- maven build ---- tomcat:run

    使用 maven tomcat plugin 1.1 进行运行

    3.3.  tomcat-maven-plugin 插件

    早期插件 groupId : org.codehaus.mojo  artifactId : tomcat-maven-plugin  版本1.1

    现在这个插件,被分为两个插件,坐标也改了

    3.3.1.  修改内部运行 tomcat的端口

    <!-- 对插件进行配置 -->

       <configuration>

       <port>80</port>

       </configuration>

    3.3.2.  自动发布到远程tomcat

    使用 tomcat内部manager 程序,进行项目热部署 (需要远程tomcat 必须开启的 )

    使用 manager 组件

    配置 tomcat/conf/tomcat-users.xml

    <role rolename="admin-gui"/>

    <user username="tomcat" password="s3cret" roles="admin-gui"/>

    远程发布

    第一步: tomcat/conf/tomcat-user.xml 建立账号

    远程访问 tomcat6 tomcat-users.xml

    <role rolename="manager"/>

        <user username="tomcat" password="123456" roles="manager"/>

    远程访问 tomcat7 : tomcat-users.xml

    <role rolename="manager-gui"/>

    <role rolename="manager-script"/>

    <user username="tomcat" password="123456" roles="manager-gui, manager-script"/>

    第二步 配置pom.xml 允许远程发布

    <!-- tomcat6.x -->

    <url>http://localhost:8080/manager</url>

    <!-- tomcat7.x -->

    <url>http://localhost:8080/manager/text</url>

    <server>myserver</server>

    第三步 配置maven setting.xml 服务器myserver 连接属性

    <server>

          <id>myserver</id>

          <username>tomcat</username>

          <password>123456</password>

        </server>

    保证外部tomcat 正确运行后,执行 tomcat:deploy / tomcat:redeploy

    4.  SVN的安装与使用

    为什么要使用版本控制

    对代码进行备份,根据需要恢复

    多人同时修改代码时,防止并发修改代码覆盖问题

    4.1.  使用 Visual SVN 搭建SVN服务器

    搭建纯粹SVN服务器 --- svn:// 访问资源

    SVN Apache服务器整合 ,搭建web SVN服务器 ----  https:// 访问资源

    指定硬盘仓库位置 d:Respositories

    安装如果系统账户是中文用户名,报错

    1) 新建 SVN仓库  bos

    2) 新建 SVN 账户  yuy/123

    访问 https://localhost:8443/svn/bos/ 

    安装 SVN 客户端软件

    4.2.  SVN客户端使用

    4.2.1.  TortoiseSVN 安装使用

    产生右键菜单

    Repo-browser 查看仓库中内容

    Import 可以将资源上传 服务器 (没有建立与SVN仓库同步 )

    Check out SVN仓库文件检出 (与SVN仓库同步 ) --- 开发人员检出同步修改

    Update 将本地文件更新到最新版本

    Commit 将本地修改提交到服务器

    Export 导出文件,与SVN仓库不同步 (商品上线,代码拷贝)

    4.2.2.  MyEclipse SVN 插件使用

    site-1.8.8.zip ---- 绿色安装

    步骤一: 解压压缩包,建立插件目录结构

    插件目录

    ----- eclipse

    ------ features

    ------ plugins

    步骤二: 将插件目录,复制myeclipse/dropins 目录 ,重启MyEclipse

    步骤三: MyEclipse 建立仓库连接

    步骤四: MyEclipse 工程代码上传 SVN仓库

    步骤五: 将工程文件,上传SVN服务器

    不要将 maven项目target 目录上传 !!!

    5.  系统主页设计

    使用 前端UI 框架,制作页面效果 (Java工程师 不用学习 页面东西,将页面制作的很美观 )

    ExtJS  前端JS框架

    Flex  基于Flash 制作页面前端 (mxml ActionScript 脚本)

    今天 项目引入 Jquery Easy UI 框架 (效果类似 Ext JS

    快速上手,学习成本低

    5.1.  easyui的目录分析

    课程 jquery Easy UI 1.3.2 版本学习

    (从1.2.3 版本 开始收费 )

    demo 实例

    locale 国际化信息

    plugins 框架一些插件

    src 源码

    themes 样式文件

    easyloader.js  框架核心加载器 (加载其它plugin

    jquery-1.8.0.min.js  jQuery类库

    jquery.easyui.min.js  框架类库 (等价于 easyloader.js + plugins 所有插件 )

    5.2.  在项目中引入 EasyUI

    必须引入

    <!-- 先引入 jquery js -->

    <script type="text/javascript" 

    src="${pageContext.request.contextPath }/js/jquery-1.8.3.js">

    </script>

    <!-- 引入 easyuijs -->

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/jquery.easyui.min.js"></script>

    <!-- 引入国际化 js -->

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/locale/easyui-lang-zh_CN.js"></script>

    <!-- 引入 默认样式 css -->

    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/default/easyui.css"/>

    <!-- 引入 icon图标 css  -->

    <link rel="stylesheet" 

    type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/icon.css"/>

    5.3.  easyui layout 控件使用

    布局控件 对一个div使用,也可以对 整个页面 body元素使用

    5.4.  easyui accordion 折叠面板使用

    设置fit属性,让面板占满父容器  

    <!-- 折叠面板  -->

    <!-- fit属性,使当前div大小占满父容器  -->

    <div class="easyui-accordion" data-options="fit:true">

    <!-- 通过iconCls 设置图标,找 icon.css中 类定义 -->

    <div data-options="title:'基本功能',iconCls:'icon-mini-add'">面板一</div> <!-- 这里每个div就是一个面板 -->

    <div data-options="title:'高级功能'">面板二</div>

    <div data-options="title:'管理员功能'">面板三</div>

    </div>

    5.5.  easyui tabs 选项卡面板 使用

    <div data-options="region:'center'">

    <!-- 选项卡面板 -->

    <div class="easyui-tabs" data-options="fit:true">

    <div data-options="title:'选项卡一'">内容一</div> <!-- 这里每个div 就是一个选项卡 -->

    <!-- closeable 可关闭 -->

    <div data-options="title:'选项卡二',closable:true">内容二</div>

    <div data-options="title:'选项卡三'">内容三</div>

    </div>

    </div>

    5.6.  树形菜单的制作

    使用 ztree插件,制作树形菜单

    zTree 是一个依靠 jQuery 实现的多功能 树插件。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点

    下载 ztree 3.5.02 版本

    api 文档

    css 样式

    demo 案例

    js 核心类库文件

    all.js = core + check + edit + hide  开发中只需要引入 all.js

    在页面引入 ztree

    <!-- 引入ztree  -->

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/ztree/jquery.ztree.all-3.5.js"></script>

    <link rel="stylesheet" type="text/css" 

    href="${pageContext.request.contextPath }/js/ztree/zTreeStyle.css"/>

    案例一: 标准数据tree

    1、 在显示树位置写 <ul> 标签

    <!-- 显示树 -->

    <ul id="basicTree" class="ztree"></ul>

    2、 通过js 编写setting对象

    // 设置树参数

    var setting = {};

    3、 设置树节点数据

    // 数据

    var zNodes = [

    {"name":"菜单一"}, // 每个{} 就是一个节点

    {"name":"菜单二"}

    ];

    4、初始化树

    // 初始化树

    $.fn.zTree.init($("#basicTree"), setting, zNodes);

    复杂树

    问题: 标准数据树,不适用大数据的树结构

    案例二: 简单数据ztree

    1、 在显示ztree位置定义 ul

    <!-- 显示树(简单数据 ) -->

    <ul id="simpleTree" class="ztree"></ul>

    2、 设置ztree参数 setting

    // 设置树参数

    var setting = {

    data : {

    simpleData : {

    enable : true

    }

    }

    };

    3、 树节点数据

    // 数据

    var zNodes = [

        // id 代表本节点编号,pId代表父节点编号

    {"id":"1","pId":"0","name":"菜单一"},

    {"id":"2","pId":"0","name":"菜单二"}

    ];

    4、 初始化树

    // 初始化树

    $.fn.zTree.init($("#simpleTree"), setting, zNodes);

    复杂树

    通过url 属性,完成树节点跳转

    通过icon属性,定制节点图标

  • 相关阅读:
    Unity项目
    Unity基本操作
    博客园自定义主题样式
    明解C语言
    C指针基础知识
    排序算法
    session理解与总结【session原理、应用、与cookie区别】
    cookie理解与实践【实现简单登录以及自动登录功能】
    【数据结构与算法】双指针思想——数组首部或尾部同向遍历
    【数据结构与算法】双指针思想——首尾双向遍历
  • 原文地址:https://www.cnblogs.com/wujizun/p/6915201.html
Copyright © 2020-2023  润新知