移动智能考勤系统(e考勤)开发过程,持续更新

       e考勤项目笔记(win10下ssm+maven3.0.5+idea15+git+github后台环境搭建)(前台建议使用angluarJs进行数据双向绑定,可以省去好多数据流转代码,目前使用apicloud移动开发平台)

  1. idea整合maven

1.jdk1.8,idea15,maven3.0.5,git 2.13.0

1.下载maven 3.0.5

2.打开settings,搜索Maven

配置maven home directory为maven路径,user setting file 用户库和本地仓库Local repository设置,默认是一样的路径即.m2。可以选择override,使用其他路径的用户库和本地仓库。

 

  1. 创建maven工程

我的项目(e考勤)创建了一个java父工程(project)e-parent,和三个web子工程(module)e-file、e-student、e-teahcer,和一个java子工程(module)e-core。

创建java父工程e-parent

 

选择archctype-quickstart 是maven创建java项目

 

 

Maven项目进行构件的时候速度会很慢,由于maven每次进行创建的时候回去网上下载artheType-catalog.xml文件,而且,现在这个文件比较大,已经接近5M的大小,所以,在网速不好的情况下,创建项目会非常慢,所以解决办法

1.指定archetype-catalog.xml文件从哪里获取,可选值为:remote,internal  ,local,默认为remote,速度最快为internal

2.是将archetype-catalog.xml文件下载到本地进行保存后再进行构建项目,那样就快很多,本地下载后需要配置。具体google,baidu,这里不详说了。

我用的是第一种方法,如下创建项目时添加properties参数:archetypeCatalog=internal。

 

 

创建一个java子工程e-core,如下其余步骤和创建e-parent一样。

 

创建三个web子工程,如下

 

选择archetype-webapp创建maven的web项目

 

其余操作都一样。

 

  1. 父工程e-parent通过maven的聚合来管理四个子工程;e-core被e-student和e-student引用,所以通过maven的依赖进行管理。

e-parent的Pom.xml

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

 

  com.xulifei.e

  e-parent

  1.0-SNAPSHOT

 

    e-teacher

    e-student

    e-core

    e-file

 

  pom

 

  e-parent

  http://maven.apache.org

 

 

    UTF-8

    0.0.1-SNAPSHOT

    4.9

   3.2.5.RELEASE

    3.2.5.RELEASE

    3.2.5.RELEASE

    3.2.5.RELEASE

    3.2.5.RELEASE

    1.8.10

    5.1.12

    0.9.1.2

    3.2.2

    3.3.1

    1.2.17

    1.7.5

    1.7.5

    2.2.2

    3.17.1-GA

    1.2.0

    1.7.5

 

 

 

   

      junit

      junit

      ${junit.version}

      test

   

   

      org.springframework

      spring-core

      ${spring-core.version}

   

   

      org.springframework

      spring-context

      ${spring-context.version}

   

   

      org.aspectj

      aspectjrt

      ${aspectjrt.version}

   

   

      org.aspectj

      aspectjweaver

      ${aspectjrt.version}

   

   

      org.springframework

      spring-orm

      ${spring-orm.version}

   

   

      org.springframework

      spring-web

      ${spring-web.version}

   

   

      org.springframework

      spring-webmvc

      ${spring-webmvc.version}

   

   

      mysql

      mysql-connector-java

      ${mysql.version}

   

   

      c3p0

      c3p0

      ${c3p0.version}

   

   

      org.mybatis

      mybatis

      ${mybatis.version}

   

   

      asm

      asm

      ${asm.version}

   

   

      log4j

      log4j

      ${log4j.version}

   

   

      org.slf4j

      slf4j-api

      ${slf4j.version}

   

   

      org.slf4j

      slf4j-log4j12

      ${slf4j-log4j12.version}

   

   

      cglib

      cglib

      ${cglib.version}

   

   

      org.javassist

      javassist

      ${javassist.version}

   

   

      org.mybatis

      mybatis-spring

      ${mybatis-spring.version}

   

   

      org.codehaus.jackson

      jackson-core-asl

      ${mvc-jackson.version}

   

   

      org.codehaus.jackson

      jackson-mapper-asl

      ${mvc-jackson.version}

   

 

 

 

 

e-teacher的pom.xml

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

   

        e-parent

        com.xulifei.e

        1.0-SNAPSHOT

        ../pom.xml

   

    4.0.0

    e-teacher

    war

    e-teacher Maven Webapp

    http://maven.apache.org

   

       

            com.xulifei.e

            e-core

            1.0-SNAPSHOT

       

 

 

       

            junit

            junit

       

       

            org.springframework

            spring-core

       

       

            org.springframework

            spring-context

       

       

            org.aspectj

            aspectjrt

       

       

            org.aspectj

            aspectjweaver

       

       

            org.springframework

            spring-orm

       

       

            org.springframework

            spring-web

       

       

            org.springframework

            spring-webmvc

       

       

            mysql

            mysql-connector-java

       

       

            c3p0

            c3p0

       

       

            org.mybatis

            mybatis

       

       

            asm

            asm

       

       

            log4j

            log4j

       

       

            org.slf4j

            slf4j-api

       

       

            org.slf4j

            slf4j-log4j12

       

       

            cglib

            cglib

       

       

            org.javassist

            javassist

       

         

            org.mybatis

            mybatis-spring

       

       

            org.codehaus.jackson

            jackson-core-asl

       

       

            org.codehaus.jackson

            jackson-mapper-asl

       

   

 

   

       

           

                src/main/resources

               

                    **/*.properties

                    **/*.xml

                    **/*.tld

               

               

                false

           

           

                src/main/java

               

                    **/*.properties

                    **/*.xml

                    **/*.tld

               

                false

           

       

       

           

                org.mybatis.generator

                mybatis-generator-maven-plugin

                1.3.5

               

                    true

                    true

               

               

               

                   

                        mysql

                        mysql-connector-java

                        5.1.12

                   

 

               

           

       

 

   

  1. maven的web项目注意事项

maven打war包注意src/main/java/和src/main/resources/目录下的xml、properties、ttl等资源文件没打进去,maven项目在ide中编译出的war包一般不会有很多问题。但是经过集成环境打war包会出现war包中打不进xml、properties等文件。这样打war包不会报错,但是war包放进tomcat中部署就报错了。

解决办法:

在当前工程的pom.xml中的build节点中加入,强制将properties,xml,tld资源文件打包。

  

           

                src/main/resources

               

                    **/*.properties

                    **/*.xml

                    **/*.tld

               

               

                false

           

           

                src/main/java

               

                    **/*.properties

                    **/*.xml

                    **/*.tld

               

                false

           

       

还可以这么写,两个目录下的所有文件都强制打包

 

 

           

                src/main/resources

               

                    **/*

               

               

                false

           

           

                src/main/java

               

                    **/*

               

                false

           

       

  1. idea的git安装与配置

  1. 安装和配置git

Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。msysgit是Windows版的Git,从https://git-for-windows.github.io下载(网速慢的请移步国内镜像),然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

 

查看git版本

 

安装完成后,还需要最后一步设置配置全局用户名和email地址,在命令行输入:

$ git config --global user.name "Your Name"

$ git config --global user.email "[email protected]"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故

意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

 

接下来idea中配置git

打开setting,搜索git,在右边面板中的path to git executable 配置刚刚安装的git的git.exe路径。然后点击test看看配置是否成功

 

Test成功

 

接下来就是在本地选中一个目录创建一个git repository,相当于选中一个目录执行git init命令,把这个目录变成git可以管理的仓库。两种方法:

第一种:使用idea中刚配置的git基于可视化界面的操作。

点击导航栏的VCS-->import into version control-->Create git Respository,选中的project目录作为git 仓库的目录,点击ok。

 

Add是将改变提交到暂存区,commit 是将暂存区的改变提交到本地仓库(commit之前一定要add,因为每次修改,如果不add到暂存区,那就不会加入到commit中)。push是将本地仓库提交到远程仓库中例如github(后面会讲到),pull指的是把文件从远程仓库拿到本地仓库中。reset HEAD指的是回到哪个历史版本。以下操作虽然可视化,但还是要求对git有一定的了解。推介初学者学习廖雪峰的git教程入门,后续再读Pro Git等深入书籍。

 

 

第二种:直接使用git bash进行仓库的创建。

Cd 到 想要创建git仓库的目录,然后执行git init。我这里是进入到我当前的项目路径

 

使用git add、git commit、git push、git pull,git reset --hard HEAD~,git checkout --filename,git rm filename等命令直接操作(详细看git教程)。

注意commit之前一定要add,因为每次修改,如果不add到暂存区,那就不会加入到commit中)

2.github远程仓库的配置与使用(请自行注册GitHub账号)

第1步:创建SSH Key。在用户主目录下(我的C:\Users\john\),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这

两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可(注意了在如下的enter passphrase...输入了密码,那么每次push或者pull都是需要验证密码的,不输入的话就不用验证)。

 

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥

对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

 

 

第三步:

你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。那么首先在github上创建一个仓库

 

填写git仓库名点击完成创建

 

 

目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。现在,我们根据GitHub的提示,在本地的对应的仓库目录下运行命令:

$git remote add origin [email protected]:xlifei/xlifei.github.io.git

(注意我们这边用的是ssh,如果是https就不需要上述生成ssh秘钥的步骤了,直接输入github的账号和密码验证)

请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

 

注意事项:

1.如果在用户主目录下(我的C:\Users\john\)有了.ssh文件夹并其中有id_rsa(私钥)和id_rsa.pub(公钥)两个文件,但还是执行$ ssh-keygen -t rsa -C "[email protected]"

创建了秘钥,那么生成的公钥和私钥文件无法覆盖原来.ssh中的秘钥,等远程仓库push的时候验证的还是.ssh中的秘钥。其公钥和私钥文件是在用户主目录下的但并不是在.ssh中,而是主目录的根目录下,并是以执行ssh秘钥生成命令时这行Enter file in which to save the key (/c/Users/john/.ssh/id_rsa): 789456 输入的789456命令的,如图:

 

如果想要使用789456私钥和789456.pub公钥,那么就必须把他们放入.ssh文件夹中覆盖原来的id_rsa(私钥),id_rsa.pub(公钥),同样文件名也要改为id_rsa,id_rsa.pub,并把原来789456.pub文件内容拷贝到github上创建的新ssh中。

2.

在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地。这两种方式的主要区别在于:使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch或者pull(抓取远程仓库到本地)和push(保存到远程仓库)代码都需要输入github账号和密码,这也是https方式的麻烦之处。而使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key的,另外ssh默认是每次fetch或者pull和push代码都不需要输入账号和密码,除非你自己设置了密码。

注意:在执行 通过Gitshell配置远程仓库的时候可能会出现一些意外:

3.  提示这个仓库已经存在(fatal: remote origin already exists) ,如果是这样 就不需要使用add + 地址的形式了 ,请修改为:git remote rm origin

 

4.提示不能移除配置信息错误(.error: Could not remove config section 'remote.origin')

解决方案: 在window/用户下面找到.gitconfig文件 (本文路径为:C:\Users\Vincent_2\.gitconfig)

打开它把里面的[remote "origin"]那一行删掉   重启git shell   再重新配置。

三、idea中maven项目配置mybatis逆向工程插件

在当前子项目的pom.xml加上如下插件配置

   

        org.mybatis.generator

        mybatis-generator-maven-plugin

        1.3.5

 

       

            true

            true

       

       

       

           

                mysql

                mysql-connector-java

                5.1.12

           

 

       

   

在当前子项目的src/main/resources下创建generatorConfig.xml

如下配置

"-//mybatis.org//DTD MyBatis Generator Configuration

1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"

>

  

  

 

  

  

  

 

  

     

        

        

        

     

 

     

     

     

                  connectionURL="${jdbc.connectionURL}" userId="${jdbc.userId}" password="${jdbc.password}">

     

 

     

                     targetProject="src/main/java">

        

        

     

 

     

     

                   targetProject="src/main/java">

        

     

 

 

     

     

                      targetProject="src/main/java" type="XMLMAPPER">

        

     

 

 

     

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

 

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

     

            enableSelectByExample="false" enableDeleteByExample="false"

            enableCountByExample="false" enableUpdateByExample="false"

            selectByExampleQueryId="false"

            enableInsert="false" />

 

     

     

           

           

           

 

     

           

           

           

 

  

  

  

点击mybatis-generator:generate右键点击Run maven build。就会在配置的指定目录下生成xml以及java代码。注意在生成的entity代码加上implement serialable接口并生成seriavaersionUID。

 

  1. ssh配置文件

未完待续

你可能感兴趣的:(javaee,智能考勤)