相同的jar在不同的项目中保存了多份
主要用来管理java项目, 进行依赖管理
项目构建
分块开发
下载链接: https://maven.apache.org/docs/history.html
下载apache-maven-3.5.4-bin.zip (适用于Windows系统), 然后解压
有如下目录
系统环境变量下:
新增:
点击path
测试
<localRepository>D:\Program Files\Maven\repository</localRepository>
<!-- 选择一个磁盘目录, 作为本地仓库 -->
在标签中 增加一个标签 ,限定Maven项目默认的jdk版本
Maven仓库
当需要依赖时, 会从仓库中查找, 优先顺序为
本地仓库>私服(如果配置了的话)>公共仓库(如果配置了的话)>中央仓库
除中央仓库之外, 还有其他远程仓库, 比如aliyun仓库(https://maven.aliyun.com/nexus/content/groups/public)
中央仓库在国外, 下载依赖速度过慢, 所以都会配置一个国内的公共仓库代替中央仓库
在setting.xml中添加以下配置
或者可以配置华为镜像, 配置如下:
在IDEA中关联本地安装的Maven, 后续就可以通过IDEA使用Maven, 管理项目了
settings for new projects-->Build, Execution, Deployment-->Build Tools-->Maven
Maven home directory
User settings file
Local repository
根据项目类型, 在pom.xml中做出对应配置, 添加配置: war或者jar
<groupId>com.dz</groupId>
<artifactId>MavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<!--打包方式 如果是java项目则用jar
如果是web项目则用war-->
<!--<packaging>jar</packaging>-->
<packaging>war</packaging>
<properties>
<!--编译编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
创建好项目后, 需要导入需要的jar, 要通过
坐标
在项目的pom.xml文件中, 增加依赖
<packaging>war</packaging>
<properties>
<!--编译编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--定义项目中需要的所有依赖-->
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<!--jstl支持-->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
pom.xml中设置war
<groupId>com.dz</groupId>
<artifactId>MavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<!--打包方式 如果是java项目则用jar
如果是web项目则用war-->
<!--<packaging>jar</packaging>-->
<packaging>war</packaging>
导入servlet 和 JSP 和 JSTL依赖, 使项目具有web编译环境
<groupId>com.dz</groupId>
<artifactId>MavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<!--打包方式 如果是java项目则用jar
如果是web项目则用war-->
<!--<packaging>jar</packaging>-->
<packaging>war</packaging>
<properties>
<!--编译编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--定义项目中需要的所有依赖-->
<dependencies>
<!--web 项目的编译环境-->
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<!--jstl支持-->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<!--servlet编译环境-->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api -->
<dependency>
<!--jsp编译环境-->
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
</dependencies>
折叠
按照Maven规范, 在main目录下新建web项目的特有目录 webapp
webapp目录下新建WEB-INF目录
WEB-INF目录下新建web.xml
main-->java-->com.dz-->servlet下新建TestServlet
package com.dz.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "TestServlet", value = "/test")
public class TestServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Test Servlet!");
request.getRequestDispatcher("/index.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
webapp目录下新建index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
项目中导入的依赖可以做生命周期的管理
compile
provided
runtime
test
system
无私服时
有私服时
我们可以使用专门的Maven仓库管理软件来搭建私服, 比如:Apache Archiva, Artifactory, Sonatype Nexus, 这里我们使用Sonatype Nexus
解压后在bin目录中执行(或者直接为Nexus配置环境变量, 和Maven同理):(以管理员身份运行cmd)
仓库类型
仓库名
配置setting.xml, 设置私服地址, 认证等信息
复制时不要复制两头的大标签, 例如< servers>< /servers>, 只需把其内容复制到对应大标签下
折叠
至此, Maven项目需要依赖时, Maven会从私服中下载
执行: mvn deploy 即可将项目部署到私服对应的仓库中, 此时项目中的打包方式多为jar
但需要提前在项目的pom.xml中配置部署私服仓库位置, 如下
注意: 如上的id依然要和setting.xml中配置的server中的id保持一致, 才能通过私服的验证
项目部署到Snapshots仓库中还是Releases仓库中取决于我们< version>1.0-SNAPSHOT< /version> 中写的是SNAPSHOT还是RELEASE(或者不写,默认就是这个)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章