欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

maven学习笔记

程序员文章站 2022-06-01 20:01:38
序言:本文记录了maven相关知识,仅供个人学习笔记、如果能够帮助到大家,不胜荣幸。 官方文档:http://maven.apache.org/download.cgi 可以看到maven版本对应不同版本的jdk有要求的 点击下载windows版本的maven: 解压之后需要配置maven的环境变量 ......

序言:本文记录了maven相关知识,仅供个人学习笔记、如果能够帮助到大家,不胜荣幸。

官方文档:http://maven.apache.org/download.cgi

可以看到maven版本对应不同版本的jdk有要求的

maven学习笔记

点击下载windows版本的maven:maven学习笔记

 

解压之后需要配置maven的环境变量:maven_home、path

maven_homr:c:\users\李云峰\downloads\apache-maven-3.6.0-bin\apache-maven-3.6.0

path:%maven_home%\bin

如何测试maven安装成功?

cmd ---->mvn -version 

maven的项目结构:

项目名称

src

main

  java

  resources

test

  java

  resources

  webapp

target

pom.xml

maven常用命令:

maven clean:清除,删除项目当中的jar等文件

maven compile:编译

maven test:测试

maven package:打包,打包只打到项目中

maven install:安装,会将jar包达到本地仓库

maven deploy:部署,如果本地或者配置了maven私服,会将jar包达到maven私服,本文后面会介绍如何配置maven私服。

maven能够执行以上命令,因为这些执行的也是maven本身依赖的jar包,在本地仓库路径:c:\users\李云峰\.m2\repository\org\apache\maven\plugin中可以找到。maven包含了项目的清理、编译、测试、打包、部署等所有步骤。

其他:

今天发现idea中,点击项目右键,show in explorer功能挺好用的,可以打开项目存储的位置,以前想要用git(小乌龟),都是记住项目位置,自己点进去的。

maven依赖范围scope

compile:主代码、测试代码、运行时都有效。例子:log4j

test:只对测试代码有效。例子:junit

provider:对主代码、测试代码有效。servlet-api,容器启动后就由tomcat提供服务了

runtime:只在运行时期有效。例子:jdbc驱动

maven*仓库位置

https://mvnrepository.com/tags/maven

使用maven配置tomcat

使用maven配置tomcat,就不需要我们手动配置本地的tomcat,maven加载tomcat,引入插件依赖。

maven学习笔记

idea中配置maven启动项:

maven学习笔记

结果输出:

maven学习笔记

关于maven会有继承、聚合两种方式来处理项目

  继承:pom依赖指定maven依赖继承的父pom,依据groupid/artyifactoryid/version/artifactory-version.packaging找到依赖的jar包,前提是父pom已经把jar包达到了本地仓库中,如果是maven私服,那么就需要上传到私服。

  聚合:一个项目,分为多个模块(dao、service、controller),依赖与父类pom,避免依赖的重复性,需要注意的是子类也要在pom中指明依赖父类的那些依赖,只是不用写版本号,因为可能不是父类的所有依赖,子类都需要。

接下来介绍如何配置maven私服

  1. 私服其实是一个软件,用于公司内部网络使用,实现jar包的共享,nexos就是私服软件,下载地址:https://www.sonatype.com/oss-thank-you-win64.zip。
  2. maven学习笔记
  3. 需要在maven中配置一旦下载依赖或者插件,就会拦截,得到我们的私服。在pom当中配置一段配置,deploy就会把jar包放到私服上。nexus搭建maven私服的软件。
  4. 具体搭建私服需要哪些配置?maven的setting具体分析如下?

具体配置本地仓库路径,如果不配置默认是:

default: ${user.home}/.m2/repository、  <localrepository>/path/to/local/repo</localrepository>

    配置镜像,镜像需要配置的url,就是我们在私服上看到的链接,需要手动配置到镜像这里,拦截我们达到*仓库的依赖请求,如果私服没有,再去请求*仓库。在maven的setting.xml中需要做的配置。

  

<mirror>
      <id>nexus</id>
      <mirrorof>*</mirrorof>
      <name>human readable name for this mirror.</name>
      <url>http://localhost:8081/nexus/content/groups/public/</url>
    </mirror>
<profile>
        <id>nexus</id>
        <repositories>
            <repository>
                 <id>central</id>
                <url>http://repo1.maven.org/maven2/</url>
                <releases><enabled>true</enabled></releases>
                <snapshots><enabled>true</enabled></snapshots>
            </repository>
        </repositories>
        <pluginrepositories>
            <pluginrepository>          
                <id>central</id>
                 <url>http://repo1.maven.org/maven2/</url>
                 <releases><enabled>true</enabled></releases>
                <snapshots><enabled>true</enabled></snapshots>
            </pluginrepository>
        </pluginrepositories>
    </profile>
<activeprofiles>
    <activeprofile>nexus</activeprofile>
</activeprofiles>

其他

如果想要将项目jar包达到私服,需要在pom.xml中加入如下配置,执行mvn deploy即可。

<distributionmanagement>
        <repository>
            <id>releases</id>
            <name>internal release</name>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotrepository>
            <id>snapshots</id>
            <name>internal snapshots</name>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotrepository>
    </distributionmanagement>