Maven实现版本控制和依赖管理_1 Maven工程基本概念和开发环境搭建
Maven实现版本控制和依赖管理_1 Maven工程基本概念和开发环境搭建
作者:田超凡
版权所有,转载请注明原作者,仿冒侵权必究法律责任
1、复习:
对于maven而言,就是模块化开发,把项目的模块肢解为mavenproject 小企业不建议使用就是把一个项目拆成很多模块,然后合起来
- 项目搭建者 考虑得 安全性、耦合性、维护性、简单易用
- 对于cot而言,整个项目设计必须都完全明白,从前台到后台到DB等
2、maven把一个项目肢解开,在一个大型项目中,团队开发显得尤为重要,项目切成很多模块,如dao层,dao层里面的核心模块,如用户支付功能等,有的核心模块出于安全考虑是保密的,通过maven打jar包 给其它开发者调用,要求每个开发者对maven都要了解,搭建maven框架的人必须非常的熟悉,各层的人做自己的事,svn的话必须要求上层的模块必须写好下层的模块才能做,比svn方便,如不用maven也可以把项目肢解开来,然后写好打包,上传svn,其他人手动更新才能用,很不方便
原理:就是多线程的操作完成,每一个模块的保存就是编译,其它对他有依赖的模块立刻扫描仓库的pom文件,发现有依赖即更新,然后把新的jar引入
groupId的名字:项目名.模块名.子模块名, 如: Shop.dao.userdao
artifactId模块名称: dao.userdao
version: 0.0.1-SNAPSHOT
也可以分步建:mvn archetype:generate
保存就是编译:从中央仓库查找
中央地址:lib里面的jar 有一个pom文件
开发hibernate项目
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
去掉依赖即去掉相应的依赖
示例
RoleDao
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.8</version>
<scope>runtime</scope>
</dependency>
</dependencies>
RoleService:
<dependencies>
<dependency>
<groupId>com.bdqn.RoleDao</groupId>
<artifactId>bdqn.RoleDao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>