当前位置: 移动技术网 > IT编程>开发语言>Java > maven学习笔记

maven学习笔记

2019年04月07日  | 移动技术网IT编程  | 我要评论

主席儿子胡海锋简历,黑芝麻产地,行尸走肉第四季12

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

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

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

点击下载windows版本的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,引入插件依赖。

idea中配置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中配置一旦下载依赖或者插件,就会拦截,得到我们的私服。在pom当中配置一段配置,deploy就会把jar包放到私服上。nexus搭建maven私服的软件。
  3. 具体搭建私服需要哪些配置?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>

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网