此博客基于北京尚学堂的教学视频学习
壹、Ant
1、Ant和Maven都是项目构建技术
2、在项目的运行编辑打包等过程中都需要依赖于ant构建工具
一个项目如何使用另外一个项目的程序
test2中的A类
将项目test2 Export导出该项目的gar包,在将到处的jar包导入test1 build path
在test1中测试
贰. 分布式
1. 传统项目部署:(冷部署)
- 新建一个项目,通过不同的包区分不同的模块.
- 把这一个项目发布服务器的 tomcat 中
2. 分布式项目部署.(适用于高负载情况下)(热部署)
- 把一个完整的项目拆分成多个项目,把拆分后的项目分别部署到对应的服务器(tomcat)中的过程就叫做分布式项目部署.
- 把传统项目包换成一个单独的项目
叁、maven 简介
- 基于 Ant 的构建工具,Ant 有的功能 Maven 都有,额外添加了其他功能.
- 运行原理图
- 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹.
- 中央仓库:网上地址 https://repo1.maven.org/maven2/
- 下载速度慢--> 配置国内镜像
- 保证 JDK 版本和开发环境一致,如果不配置 1.4 或 1.5
- 坐标
- 每一 jar 文件都有一个唯一坐标.通过坐标可以精确确定是哪个 jar
- 坐标组成
- GroupID: 公司名.公司网址倒写
- ArtifactID: 项目名
- Version: 版本
- pom
- 英文名称(Project Object Mode)
- 项目对象模型
- 把 project 当作对象看待.
- 通过 maven 构建工具可以让对象(项目)和对象(项目)之间产生关系
- 网址(查看坐标)
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、编写代码,平常怎么写,这里就如何写
十、热部署