maven

一.简介

maven是Apache下面的一个存java语言开发的开源项目;基于项目对象模型(POM)

maven是一个项目管理工具,可以对java项目进行构建,依赖管理(jar包)

概念:

1.maven中央仓库:

  中央仓库由maven的社区来提供,其中包含了大量常用的库

2.maven远程仓库:

  我们自己定义的服务仓库

3.maven本地仓库:

  我们自己本地电脑中的仓库,maven所需要的所有的构件都是直接从本地仓库进行获取

  如果本地仓库没有,首先尝试去中央仓库下载,然后去远程仓库中下载

二、安装

管网:http://maven.apache.org/

下载:https://archive.apache.org/dist/maven/maven-3/

1、解压

把下载的压缩包中的文件夹解压到某个目录,比如

2、配置环境变量

MAVEN_HOME:地址

PATH:%MAVEN_HOME%in 

cmd:meven-version

三、使用

1.配置:

confsetting 中   <localRepository>C:UsersAdministratorDesktopliwenzhengapache-maven-3.5.0.m2 epository</localRepository>

这个路径可以自定义,用的时候要找到

1.1 本地仓库

这个路径可以自定义,只要你到时候可以找到就行

1.2中央仓库

<mirror>
    <id>maven1</id>
    <name>repo1</name>
    <mirrorOf>central</mirrorOf>
    <url>http://repo1.maven.org/maven2</url>
</mirror>
<mirror>
    <id>maven2</id>
    <name>repo2</name>
    <mirrorOf>central</mirrorOf>
    <url>http://repo2.maven.org/maven2</url>
</mirror>
     
<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>
中央仓库 配置

1.3远程仓库

只需要在repositories节点中配置即可

maven 配置 jdk1.8

<!-- 全局jdk配置,settings.xml -->  
    <profile>    
        <id>jdk18</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.8</jdk>    
        </activation>    
        <properties>    
            <maven.compiler.source>1.8</maven.compiler.source>    
            <maven.compiler.target>1.8</maven.compiler.target>    
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
        </properties>     
    </profile>    
maven配置jdk1.8

只需要在repositories节点中配置即可(略)

1.4 maven编译环境

可选的,在profiles节点中配置

<profile>  
        <id>jdk1.8</id>  
        <activation>  
            <activeByDefault>true</activeByDefault>  
            <jdk>1.8</jdk>  
        </activation>  
        <properties>  
            <maven.compiler.source>1.8</maven.compiler.source>  
            <maven.compiler.target>1.8</maven.compiler.target>  
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
        </properties>   
    </profile>

maven构建项目的生命周期

阶段处理描述
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

3、eclipse集成maven

4、maven项目结构

pom.xml中依赖的信息

<dependency>
            <!-- 跟包 -->
            <groupId>mysql</groupId>
            <!-- 项目名 -->
            <artifactId>mysql-connector-java</artifactId>
            <!-- 版本号 -->
            <version>5.1.47</version>
            <!-- 表示范围: 
                compile-默认的,参与编译、运行、测试、打包 
                test-测试,参与编译、运行、测试、不参与打包 
                provided-参与编译、运行、测试、不打包 
                runtime-参与运行、测试、打包 
                system-和provided相同 -->
            <scope>compile</scope>
        </dependency>

5、maven-web项目发布上线

5.1 本地打包

在自己本地使用eclipse工具的maven插件,把maven项目进行打包

项目 – 右键 – run as – maven install

使用上面的操作,即可将项目打包

5.2 war包拷贝到webapps

打包之后,需要再war包拷贝到tomcat的webapps目录中

5.3 startup.bat启动服务

在tomcat的bin目录中双击startup.bat启动服务

注意的是,需要电脑环境有jdk的环境变量配置

5.4 访问

6.maven多模块开发

项目分包:po  dao  servlet  util.......

6.1 说明

在平时javaweb开发中为了方便后期的维护,我们一般会进行分层开发,最常见的分层:

po(模型层)、

dao(数据库访问层)、

service(业务逻辑层)、

web(表现层);

这样分层之后,各个层之间的职责会比较明确,后期维护相对容易

多模块项目结构:

system-parent:

  pom.xml

  system-po

    pom.xml

  system-service

    pom.xml

  system-web

    pom-xml

  以前的项目,每层都是一个包,现在每层都需要创建一个单独的模块,通过maven依赖关系来设置模块和模块之间的联系

注意:

  po  util  dao  service  web 都需要去继承parent模块(父模块)

  parent 模块打包的类型必须是pom

  web模块打包的类型必须是war:

  其余模块打包的类型就是jar:

模块间的依赖关系:

  web -------po  service

  service---------po   dao

  dao-----------po

依赖性传递

  依赖的传递性,比如dao依赖po模块,service依赖dao模块,那么service模块自动以来po模块

6.6 案例演示

整体项目结构

  

parent是父项目,新建时需要选择:maven project

其余模块的子项目,需要继承parent,新建时需要选择:maven module

6.6.1 maven-parent

6.6.2 maven-po

6.6.3 maven-dao

6.6.4 maven-service

6.6.5 maven-web

6.6.6 依赖关系

maven-po/pom.xml

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
    </dependency>

maven-dao/pom.xml

<!-- dao模块依赖po模块 -->
      <dependency>
          <groupId>com.yujun.maven</groupId>
          <artifactId>maven-po</artifactId>
          <version>1.0</version>
      </dependency>
      
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>

maven-service/pom.xml

<!-- service模块依赖于dao模块 -->
      <dependency>
          <groupId>com.yujun.maven</groupId>
          <artifactId>maven-dao</artifactId>
          <version>1.0</version>
      </dependency>

maven-web/pom.xml

<!-- web模块依赖于service模块 -->
      <dependency>
          <groupId>com.yujun.maven</groupId>
          <artifactId>maven-service</artifactId>
          <version>1.0</version>
      </dependency>
      
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
6.6.7 案例代码

maven-po

maven-dao

maven-service

maven-web

maven-web/web.xml

<servlet>
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>com.yujun.maven.web.servlet.UserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/userServlet</url-pattern>
  </servlet-mapping>
6.6.8 运行

原文地址:https://www.cnblogs.com/faded8679/p/10729793.html