开始一个新的项目,特此记录,资料全部来源于传智播客,感谢。
我们要做一个类似电商的项目。用maven做管理。
maven里面主要分为三种工程:
1:pom工程:用在父级工程,聚合工程中
2:war工程:主要用作网站。
3:jar工程:就是当做jar用的。
先给出总的项目结构:
解释如下:
1:taotao-parent
taotao-parent公司级别的maven工程。主要做的功能是统一公司做各种项目时用的jar包的版本。比如我们做淘淘商城,或者别的什么项目都要去继承这个项目。
注意我们选择的是Pom工程。
这个工程建立步骤如下:
然后我们修改pom.xml文件,如下:
4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT pom 4.12 4.1.3.RELEASE 3.2.8 1.2.2 1.2.15 5.1.32 1.6.4 2.4.2 1.0.9 4.3.5 1.2 2.5 2.0 2.5 3.3.2 1.3.2 3.3 3.4.2-fix 0.9.1 1.3.1 2.7.2 4.10.3 joda-time joda-time ${joda-time.version} org.apache.commons commons-lang3 ${commons-lang3.version} org.apache.commons commons-io ${commons-io.version} commons-net commons-net ${commons-net.version} com.fasterxml.jackson.core jackson-databind ${jackson.version} org.apache.httpcomponents httpclient ${httpclient.version} junit junit ${junit.version} test org.slf4j slf4j-log4j12 ${slf4j.version} org.mybatis mybatis ${mybatis.version} org.mybatis mybatis-spring ${mybatis.spring.version} com.github.miemiedev mybatis-paginator ${mybatis.paginator.version} com.github.pagehelper pagehelper ${pagehelper.version} mysql mysql-connector-java ${mysql.version} com.alibaba druid ${druid.version} org.springframework spring-context ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-webmvc ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-aspects ${spring.version} jstl jstl ${jstl.version} javax.servlet servlet-api ${servlet-api.version} provided javax.servlet jsp-api ${jsp-api.version} provided commons-fileupload commons-fileupload ${commons-fileupload.version} redis.clients jedis ${jedis.version} org.apache.solr solr-solrj ${solrj.version} ${project.artifactId} org.apache.maven.plugins maven-resources-plugin 2.7 UTF-8 org.apache.maven.plugins maven-compiler-plugin 3.2 org.apache.tomcat.maven tomcat7-maven-plugin 2.2
上面用的就是我们公司用的所有的jar包,注意这个taotao-parent的maven的工程的意义在于统一公司所有项目用的jar包的版本。所以他的特点就是不实现具体的jar包依赖,
只实现版本的控制:
<!-- 只定义版本,并不实际依赖-->
<dependencyManagement>加了这句话,我们就可以只控制版本,不实现具体的依赖。我们知道Maven的依赖需要三个坐标:
如果我们的taotao项目继承了这个taotao-parent工程,我们以后在taotao里面去依赖jar包只需要两个坐标:
就不需要版本了。 2:taotao-comon: 这个工程是存放公用的工具类:比如什么单元测试啊,json包什么的。因为公司的项目不会只有我们这么一个taotao项目用这些工具类,别的项目也会有用的,所以我们呢把这些工具类统一出来。 建立过程如下:注意我们用的是jar.而且继承之前的taotao-parent工程。
我们修改pom.xml文件:注意我们在引入jar是maven的三个坐标中<version></version>坐标已经不写了。因为我们继承了taotao-parent工程啊,已经指定了版本了。
4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT com.taotao taotao-common 0.0.1-SNAPSHOT 注意我们在引入jar是maven的三个坐标中 坐标已经不写了。因为我们继承了taotao-parent工程啊,已经指定了版本了 joda-time joda-time org.apache.commons commons-lang3 org.apache.commons commons-io commons-net commons-net com.fasterxml.jackson.core jackson-databind org.apache.httpcomponents httpclient junit junit test org.slf4j slf4j-log4j12
好了,我们之前已经建立了两个工程。
3现在我们正式做taotao的工程:
我们这个taotao工程做成一个聚合工程:
建立一个父工程,然后在父工程里面建立model工程,分为pojo工程,mapper工程,service工程,和contral(web)工程。就是把每个模块都独立建成工程。项目依赖。
我么先讲taotao-manager的建立过程:注意选择的是pom工程。并且继承了taotao-parent工程。
我们这个工程肯定是要依赖之前的taotao-comon工程的,所以我们在修改pom文件时要加入这句。
pom.xml文件如下:
4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT com.taotao taotao-manager 0.0.1-SNAPSHOT pom com.taotao taotao-comon 0.0.1-SNAPSHOT taotao-manager-pojo taotao-manager-mapper taotao-manager-service taotao-manager-web
好了,建立了这个taotao聚合工程之后我们就要根据里面的pojo,srvice,control模块来单独的建立maven工程了。
如下:
4:我们先建立taotao-manager-pojo工程:选择的是jar.
pom.xml文件:
4.0.0 com.taotao taotao-manager 0.0.1-SNAPSHOT taotao-manager-pojo
因为我们的pojo类不需要依赖什么jar包,所以不需要修改pom文件。
5:我们再创建taotao-manager-mapper项目:选择jar.
修改pom.xml文件,因为mapper需要依赖Mybatsi什么的。
如下:
4.0.0 com.taotao taotao-manager 0.0.1-SNAPSHOT taotao-manager-mapper com.taotao taotao-manager-pojo 0.0.1-SNAPSHOT org.mybatis mybatis org.mybatis mybatis-spring com.github.miemiedev mybatis-paginator com.github.pagehelper pagehelper mysql mysql-connector-java com.alibaba druid
我们看一下工程。发现里面多了好多的jar包:
其中的taotao-comom是因为我们的taotao-manager-mapper是继承taotao-manager的。而taotao-manager是依赖taotao-common的。所以taotao-manager会有taotao-common里面的jar包。
6同理我们创建taotao-service工程:也是jar型的maven工程
taotao-service工程的pom.xml文件如下:
4.0.0 com.taotao taotao-manager 0.0.1-SNAPSHOT taotao-manager-service com.taotao taotao-manager-mapper 0.0.1-SNAPSHOT org.springframework spring-context org.springframework spring-beans org.springframework spring-webmvc org.springframework spring-jdbc org.springframework spring-aspects
7:最后我们创建taotao-web其实也就是对应的Contral(控制层)。
如下:
我们选择的是war工程。因为我们最后聚合后要打成war包的,至少要有一个war工程。
如下:
修改Pom.xml文件。如下:
4.0.0 com.taotao taotao-manager 0.0.1-SNAPSHOT taotao-manager-web war com.taotao taotao-manager-service 0.0.1-SNAPSHOT jstl jstl javax.servlet servlet-api provided javax.servlet jsp-api provided commons-fileupload commons-fileupload
到这里我们的工程就搭建好了。
我们看一下效果:
我们看到在taotao-manager这个父pom工程里面有四个文件。这是因为我们这四个都是model项目。是下面的子文件。
在taotao-manager的pom.xml有如下一段话:
taotao-manager-pojo taotao-manager-mapper taotao-manager-service taotao-manager-web
最后我们在taotao-manager-web这个工程下面创建一个WEB-INF文件和web.xml.(因为没有自动生成,所以我们要手工创建了)
web.xml内容如下:
taotao-manager index.html index.htm index.jsp default.html default.htm default.jsp
到这里我们整个maven工程全部搭好了。