就业班_JavaEE_day47_48_Maven
一概述
1 项目管理工具, 通过pom.xml来管理依赖的jar包 通过plugin来管理项目的生命周期。通过maven将项目的目录结构进行了统一。
2 仓库 分为本地仓库(本地的一个文件夹 通过配置关联maven) 私服(私人服务器,一般在局域网内搭建) 中央仓库(maven官方提供)
二maven下载安装本地仓库配置
1 settings.xml中配置本地仓库目录 <localRepository>D:\lib\repository_ssh</localRepository>
2 eclipse集成maven
a 首选项配置maven安装目录 b 首选项配置usersettting 指定settingxml c maven视图更新索引
三快速入门
1 新建maven工程,选择create a simple project 定义工程坐标 groupid 一般定义项目名称 artifactid 一般定义模块名称 version 版本 snapshot快照版本 release 正式发行版本
2 修改jre版本。 add plugin compile
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
3 添加jar包依赖
add Dependency 可以导入本地仓库中 也可以在网上找资源的坐标
4 项目的生命周期 通过plugin来操作
clean(清除) default(构建项目) site 不用
5 通过命令行或者eclipse来管理项目
配置maven_home 和 path
通过eclipse需要给jre指定运行参数才能使命令生效 -Dmaven.multiModuleProjectDirectory=$MAVEN_HOME
主要命令 clean 清理 compile 编译 package 打包 install 发布到本地仓库
四 ssh项目搭建
1创建maven项目 包选择war
2 添加jre的plugin
tomcat的plugin
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port> //表示tomcat端口号
<path>/mavenweb</path> //表示访问路径
</configuration>
</plugin>
3 添加ssh的相关依赖包
其中需要添加servletapi的依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
4 添加web.xml applicationContext.xml struts2.xml 等配置文件
5 tomcat7:run 运行程序
window下查找8080端口被占用命令 :netstat -ano | findStr 8080
6 定义变量
<properties>
<spring.version>4.2.4.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
五 聚合和继承
1 新建maven 项目,项目的package要选择pom。
2 新建maven module ,选择parent为第一步新建的聚合项目。
这样在聚合项目的pom中将产生如下配置
<modules>
<module>aaa</module>
</modules>
在module项目的pom中将产生如下配置
<parent>
<groupId>com.itheima.parent</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
聚合是把多个模块或项目聚合到一起,我们可以建立一个专门负责聚合工作的Maven 工程。作为父项目可以将多个模块管理起来,作为
子模块可以从父项目中继承依赖。
关系:亲生(二边都有关系维护) 领养(只在父亲一方有维护关系即在modules中) 私生子(只在孩子一方维护关系,即维护parent关系)
六 构建多模块maven工程
二种构建方式: 按业务模块分; 按分层分;
其中按分层分
erp_parent pom (编译运行的操作在父工程中) erp_domain jar erp_dao jar erp_service jar erp_web war (配置文件都放在该module中,因为是war包所以要添加web.xml)
applicationContext.xml文件拆分 需要注意在web.xml中修改applicationContext文件的引用 classpath*:applicationContext*.xml 第一个*表示引用多个项目中的文件 第二个*表示引用的文件以applicationContext开头。
通常实际按照业务模块进行划分。
七 依赖管理
1 依赖范围
主要关注 compile(编译,表示在编译测试运行三个阶段都需要该jar包) test(测试,表示只在测试阶段需要该jar包) provided (表示只在编译和测试阶段需要该jar包)
不配置scope ,默认范围是compile
2 依赖传递 a依赖b b依赖c 所以a依赖c
3 依赖排除 jar包冲突 通过exclusion来删除其中一个,通常删除其中的低版本。
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
八 私服
私服配置 在maven的setttings.xml中配置
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
进行配置后依赖查找顺序为:本地仓库--私服--中央仓库 ,找到则返回。
如果是要往私服中添加jar包,则需要知道用户名和密码,来连接仓库。在maven的setttings.xml中配置
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
九 SVN
版本管理工具 签出 签入 客户端和eclipse插件二种形式
|