Maven学习

此博客基于北京尚学堂的教学视频学习

 

壹、Ant

1、Ant和Maven都是项目构建技术

2、在项目的运行编辑打包等过程中都需要依赖于ant构建工具

 

一个项目如何使用另外一个项目的程序

test2中的A类

将项目test2  Export导出该项目的gar包,在将到处的jar包导入test1  build path

在test1中测试

 

贰. 分布式

 

1. 传统项目部署:(冷部署)

  1.  新建一个项目,通过不同的包区分不同的模块.
  2.  把这一个项目发布服务器的 tomcat 中

2. 分布式项目部署.(适用于高负载情况下)(热部署)

  1. 把一个完整的项目拆分成多个项目,把拆分后的项目分别部署到对应的服务器(tomcat)中的过程就叫做分布式项目部署.
  2. 把传统项目包换成一个单独的项目

 

叁、maven 简介

  1. 基于 Ant 的构建工具,Ant 有的功能 Maven 都有,额外添加了其他功能.
  2. 运行原理图
    1. 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹.
    2. 中央仓库:网上地址 https://repo1.maven.org/maven2/
    3. 下载速度慢--> 配置国内镜像
    4. 保证 JDK 版本和开发环境一致,如果不配置 1.4 或 1.5

 

  1. 坐标
    1. 每一 jar 文件都有一个唯一坐标.通过坐标可以精确确定是哪个 jar
    2. 坐标组成
      1. GroupID: 公司名.公司网址倒写
      2. ArtifactID: 项目名
      3. Version: 版本
  2. pom
    1. 英文名称(Project Object Mode)
    2. 项目对象模型
      1. 把 project 当作对象看待.
      2. 通过 maven 构建工具可以让对象(项目)和对象(项目)之间产生关系
  3. 网址(查看坐标)
    http://mvnrepository.com/

 

配置Maven(利用国内镜像----阿里云)

在maven的service.xml中配置

 

肆、新建 Maven 项目

1. New-->Mavenproject
2. 勾选复选框,表示创建一个简单 Maven 项目(不应用任何模板)

3. 填写项目信息
      3.1Packaging: 项目的类型,最终会被打包成什么类型.
      3.1jar:java 项目
      3.2war:web 项目

      3.3pom:逻辑父项目
           3.3.1 只要一个项目有子项目必须是 pom 类型.

 

 

伍、 Maven 项目目录结构(jar 类型)

 

1、src/main/java 真实目录的快捷目录,写 java 代码

2、 src/main/resources 快捷目录

          2.1 存放配置文件.
          2.2 虽然看见 resources 但是里面所有配置文件最终会被编辑放入到 classes 类路径.

3. src/test/java 写测试 java 代码

4. src/text/resources 测试的配置文件夹

5. pom.xml    maven 的配置文件
        5.1 当前项目所依赖的其他项目或 jar 或插件等

 

 

陆、Maven 项目之间的关系

1. 依赖关系

1 标签<dependency>把另一个项目的 jar 引入到当过前项目

2 自动下载另一个项目所依赖的其他项目

 

2. 继承关系.

1 父项目是 pom 类型

2 子项目jar或war,如果子项目还是其他项目的父项目,子项目也是 pom 类型.

3 有继承关系后,子项目中出现<parent>标签

          3.1 如果子项目和<groupId>和<version>与父项目项目,在子项目中可以不配置<groupId>和<version>

4 父项目 pom.xml 中是看不到有哪些子项目.在逻辑上具有父子项目关系.

 

3. 聚合关系.

1 前提是继承关系.父项目会把子项目包含到父项目中.

2 子项目的类型必须是 Maven  Module 而不是 maven  project

3 新建聚合项目的子项目时,点击父项目右键新建 Maven  Module

4 具有聚合关系的父项目,在 pom.xml 中<modules>

 

4. 聚合项目和继承项目区别

1 在语意上聚合项目父项目和子项目关系性较强

2 在语意上单纯继承项目父项目和子项目关系性较弱

 

5. <dependencyManagement> 写在父项目

1 作用:声明可能使用到的所有 jar

2 子项目中只需要有坐标的<groupid>和<artifactid>,<version>继承父项目

3 在父项目中<properties>把所有版本好进行统一管理

4 父项目 pom.xml
      4.1   <properties>子标签名称自定义
      4.2   ${名字} 引用标签的值

.5 子项目

 

 

七. 创建 war 类型项目

1. 创建 mavenproject 时选择 packaging 为 war

2. 在 webapp 文件夹下新建 META-INF 和 WEB-INF/web.xml

 

3. 在 pom.xml 中添加 javaee 相关的三个 jar
      3.1<scope>jar有效范围 provided 表示编译期生效,不会打包发布到 tomcat 中

 

4. 配置 tomcat 插件

5. 右键项目-->runas-->mavenbuild-->Goals 中输入

       cleantomcat7:run

 

八. 资源拷贝插件

1.maven 默认只把 src/main/resources 里面的非.java 文件进行编译到classes 中

2.如果希望 src/main/java 下的文件也被编辑到 classes 中,在 pom.xml中配置

       2.1 下面内容配置在<build>中

 

九、在maven简单使用ssm

1、配置pom.xml   导入需要的包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tk</groupId>
  <artifactId>myweb0</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
  <properties>
 	<servlet-version>3.0.1</servlet-version> 
 	<jsp-version>2.2</jsp-version>
 	<jstl-version>1.2</jstl-version>
 	<springmvc-version>4.1.6.RELEASE</springmvc-version>
 	<springjdbc-version>4.1.6.RELEASE</springjdbc-version>
 	<aspectjweaver-version>1.8.13</aspectjweaver-version>
 	<mybatis-version>3.4.6</mybatis-version>
 	<mybatis-spring-version>1.3.2</mybatis-spring-version>
 	<log4j-version>1.2.17</log4j-version>
 	<mysql-version>6.0.6</mysql-version>
 	<jackson-version>2.9.8</jackson-version>
 	<commons-io-version>2.6</commons-io-version>
 	<commons-fileupload-version>1.3.3</commons-fileupload-version>
  </properties>
  <dependencies>
  	<!-- 配置javaEE的包 -->
  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>javax.servlet-api</artifactId>
  		<version>${servlet-version}</version>
  		<scope>provided</scope>
  	</dependency>
  	<dependency>
  		<groupId>javax.servlet.jsp</groupId>
  		<artifactId>jsp-api</artifactId>
  		<version>${jsp-version}</version>
  		<scope>provided</scope>
  	</dependency>
  	<dependency>
  		<groupId>jstl</groupId>
  		<artifactId>jstl</artifactId>
  		<version>${jstl-version}</version>
  	</dependency>
  	
  	<!-- Spring -->
  	<!-- 配置spring的包  -->
  	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-webmvc</artifactId>
	    <version>${springmvc-version}</version>
	</dependency>
  	
  	<!-- 配置spring jdbc -->
    <dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-jdbc</artifactId>
	    <version>${springjdbc-version}</version>
	</dependency>
	
	<dependency>
	    <groupId>org.aspectj</groupId>
	    <artifactId>aspectjweaver</artifactId>
	    <version>${aspectjweaver-version}</version>
	</dependency>
	
	
	<!-- Mybatis -->
	<dependency>
	    <groupId>org.mybatis</groupId>
	    <artifactId>mybatis</artifactId>
	    <version>${mybatis-version}</version>
	</dependency>
	
	<dependency>
	    <groupId>org.mybatis</groupId>
	    <artifactId>mybatis-spring</artifactId>
	    <version>${mybatis-spring-version}</version>
	</dependency>
	
	<!-- Log4j -->
	<dependency>
	    <groupId>log4j</groupId>
	    <artifactId>log4j</artifactId>
	    <version>${log4j-version}</version>
	</dependency>
  
  	<!-- MySQL驱动 -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.18</version>
	</dependency>
	
	<!-- jackson -->
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-databind</artifactId>
	    <version>${jackson-version}</version>
	</dependency>
	
	
	<!-- commons - fileupload  -->
	<dependency>
	    <groupId>commons-fileupload</groupId>
	    <artifactId>commons-fileupload</artifactId>
	    <version>${commons-fileupload-version}</version>
	</dependency>
  </dependencies> 
  
  
  <build>
   	<plugins>
   		<!-- 配置tomcat插件 -->
   		<plugin>
   			<groupId>groupId>org.apache.maven</groupId>
		    <artifactId>maven-plugin-api</artifactId>
		    <version>3.3.9</version>
   			<configuration>
   				<port>8090</port>
   				<path>/</path>
   			</configuration>
   		</plugin>
   	</plugins>
   		<!-- 资源拷贝插件 -->
   		<resources>
   			<resource>
   				<directory>src/main/java</directory>
   				<includes>
   					<include>**/*.xml</include>
   				</includes>
   			</resource>
   			
   			<resource>
   				<directory>src/mian/resources</directory>
   				<includes>
   					<include>**/*.xml</include>
   					<include>**/*.properties</include>
   				</includes>
   			</resource>
   		</resources>
  </build>

</project>

 

2、将配置文件放入   src/main/resources   的文件夹下

 

3、编写代码,平常怎么写,这里就如何写

 

 

 

十、热部署

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值