maven中的仓库

需要jar包时,先到本地仓库中找,没有就从中央仓库去下载到本地仓库。

中央仓库很多都在国外,下载速度慢。国内的一些公司在自己的服务器上搭建了maven仓库(中央仓库的镜像),供内部人员使用,因为在公司私有的服务器上,所以又叫做私服。

有的公司把自己的maven分享出来,免费供开发者使用,比如阿里云的maven仓库。

如果使用了私服,需要jar包时,先到本地仓库中去找,找不到再去私服上找,如果私服上没有,就从中央仓库下载到私服,再从私服下载到本地仓库。


Maven中的坐标

Maven用坐标来唯一标识一个项目、依赖,坐标由三部分组成:

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
  • groupId  公司、组织的名称
  • artifactId   项目名称
  • version  项目版本号。SNAPSHOT,快照,开发中的版本,不稳定;Release,发布版本。

依赖的作用域:

依赖有3个作用时期:编译时、测试时、正式部署运行时。

有的依赖3个时期都要使用,有的依赖只在特定时期使用,可使用<scope>设置依赖的作用域:

       <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<scope>常用的值:

  • compile  默认值,编译、测试、正式运行,一般都使用默认值
  • test  只在测试时有效,比如junit
  • runtime  只在运行时有效(测试+正式运行)
  • provided  只在编译、测试时有效

Maven常用命令

  • mvn  -v或-version   显式Maven的版本信息,一般用来验证maven是否配置成功

在cmd下就可以管理项目,先切换到项目的根文件夹:

  • mvn  clean   清理。删除target文件夹(之前编译、打包产生的文件)
  • mvn   compile   编译。对项目(src/main/java)进行编译
  • mvn  test   测试。先执行compile对项目(src/main/java)进行编译,再对项目测试(src/main/java)进行编译
  • mvn  package   打包。先执行compile、test,在将项目打包为jar或war。
  • mvn  install   安装。先执行compile、test、package,再将项目安装到本地仓库。本地仓库\groupId\artifactId,是放在公司、组织文件夹下的。
  • mvn  deploy  发布。将项目部署到web服务器。

这5个命令代表了项目的生命周期(Lifecycle)。

eg、我先将项目打包为jar,之后修改了代码,我执行install时,maven会自动先执行install之前的生命周期命令。

如果只是将之前的jar安装到本地仓库,那我做的修改岂不是无效了?为防止这种情况发生,maven会自动调用之前生命周期的方法,来更新项目。

这就是maven的对项目的自动构建。你执行deploy,编译、测试、打包、安装、部署都给你弄了。

每个命令都对应一个插件,执行命令实际是调用对应的插件来完成。

maven集成了tomcat插件,我们直接直接将项目部署到tomcat中:

  • maven  tomcat:run

注意:每次使用tomcat后,需要先点击停止,如果不点停止,直接重新部署、重启tomcat,可能会出现端口占用、内存泄漏的问题。

Maven 仓库、坐标、常用命令的更多相关文章

  1. Maven使用笔记(一)Maven安装及常用命令

    1.Windows下安装Maven 首先去下载Maven安装包,http://maven.apache.org/download.cgi,目前最新版本是 Maven 3.2.3 . 解压到本地,可以看 ...

  2. Maven 插件 maven-tomcat7-plugin - 常用命令及配置

    常用命令 tomcat7:deploy 说明:部署 WAR 到 Tomcat tomcat7:help 说明:查看插件帮助信息 tomcat7:run 说明:支行当前项目 配置 <project ...

  3. maven学习0 常用命令学习

    mvn clean install -Dmaven.test.skip=truemaven的package与install命令区别: package是把jar打到本项目的target下,而instal ...

  4. Git 建立仓库及常用命令速查表

    Git新建仓库两种模式: 一.项目在本地时,本地初始化仓库并提交至Coding.Net 新建一个空白目录并进入,执行如下流程 1.git init2.项目代码复制到当前目录3.git add *4.g ...

  5. 回顾:maven配置和常用命令整理

    推荐两个库地址,开源中国的好像不好使了 阿里的仓库:http://maven.aliyun.com/nexus/content/groups/public/ 另一个:http://repo2.mave ...

  6. maven安装与常用命令

    maven安装: 下载地址http://maven.apache.org/download.cgi 1.安装好Java,配置好Java的环境变量(JDK) 2.下载apache-maven-3.5.2 ...

  7. Maven的一些常用命令

    将本项目的源码部署到本地仓库 mvn clean source:jar install 将本地jar包部署到本地仓库,首先将jar包放在当前目录下,然后执行,这样做比直接把jar包copy到本地仓库更 ...

  8. [MAVEN]二、常用命令

    mvn eclipse:eclipse :生成 Eclipse 项目文件,生成后可以导入到eclipse中使用 mvn install :在本地 Repository 中安装 jar ,若是Web项目 ...

  9. 【入门】Gradle的基本使用、在IDEA中的配置、常用命令

    一.介绍 java的源码构建工具,大致经历了 ant -> maven -> gradle 这个过程,每一次进步,都是在解决之前的工具所带来的问题,简单来说: 1. ant 功能虽然也很强 ...

随机推荐

  1. 查看jvm内存信息

    Runtime.getRuntime().maxMemory(); //最大可用内存,对应-Xmx Runtime.getRuntime().freeMemory(); //当前JVM空闲内存 Run ...

  2. 演示共享布局 Demonstrating Shared Layouts 精通ASP-NET-MVC-5-弗瑞曼 Listing 5-10

  3. axios请求方法封装.

    axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT ...

  4. Ogre3d 1.7.x 的 RTShaderSystem的一个BUG

    来源:http://www.ogre3d.org/forums/viewtopic.php?f=2&t=63644 表现:使用dx的shader可能会造成程序崩溃. 在文件OgreShader ...

  5. 改进Zhang Suen细化算法的C#实现

    本文主要实现了改进Zhang Suen细化算法的C#实现,相关论文 :“牟少敏,杜海洋,苏平,查绪恒,陈光艺.一种改进的快速并行细化算法[J].微电子学与计算机,2013,(第1期)” .这篇论文中关 ...

  6. mysql5.7的基本使用

    mysql的基本使用:最简单的增删改查 (建议用类似记事本的东西写代码,错了容易改) 以下就是这篇文章的代码 一,增和查   CREATE DATABASE one; 新建了一个名为one的数据库 S ...

  7. 吉哥系列故事——恨7不成妻(数位dp)

    吉哥系列故事--恨7不成妻 传送门 Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥 ...

  8. hash模式与history模式

    随着 ajax 的使用越来越广泛,前端的页面逻辑开始变得越来越复杂,特别是spa的兴起,前端路由系统随之开始流行. 从用户的角度看,前端路由主要实现了两个功能(使用ajax更新页面状态的情况下): 记 ...

  9. 多线程之CountDownLatch的用法及原理笔记

    前言-CountDownLatch是什么? CountDownLatch是具有synchronized机制的一个工具,目的是让一个或者多个线程等待,直到其他线程的一系列操作完成. CountDownL ...

  10. 20190708三人开黑CF模拟赛

    7月8号晚上8点和两位巨佬开了一场虚拟cf: [Helvetic Coding Contest 2018 online mirror (teams allowed, unrated)] 我这么蔡,只A ...