基本概念和生命周期

Maven是现在流行的构建自动化工具,提供了软件构建过程中全生命周期的管理。

基础目录结构

基础目录结构如下:

  • 根目录:存放pom.xml 和所有的子目录
  • ${basedir}/src/main/java: java源代码
  • ${basedir}/src/main/resources: 资源文件,比如属性文件,配置文件
  • ${basedir}/src/test/java:单元测试代码
  • ${basedir}/src/test/resources:测试资源

编译打包以后会默认的产生 jar文件,并且编译生成的classes文件会放置在${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

Maven安装和使用

  1. 下载Apache Maven包并且解压。
  2. 配置Maven的环境变量,把bin目录加到默认的PATH当中。
  3. 命令行中使用mvn -version查看安装的版本。
  4. 配置解压目录下/conf/setting.xml中的参数,包括本地仓库目录,镜像源(中央仓库,私服...)
  5. 新建Maven项目:首次新建某个类型(archetype)maven项目需要联网,maven要从网上下载相应的依赖包。Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT
  6. 切换到对应的工程根目录,构建Maven项目(mvn package),当你第一次运行 maven 的时候,它会从网上的 maven 库 (repository) 下载需要的程序,存放在你电脑的本地库 (local repository) 中,所以这个时候你需要有 Internet 连接。Maven 默认的本地库是 ~/.m2/repository/。如果settings里配置了本地库,则下载到对应的配置文件夹当中。
  7. 第6步结束以后, maven 在 工程根目录下面建立了一个新的目录 target/ ,构建打包后的 jar 文件 xxx-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。

eclipse集成maven

最新版本的eclipse已经内嵌maven插件,并且指向默认的Maven。但通常我们还是单独下载maven,然后通过preference指向到下载的Maven。

  1. 安装插件
  2. 到eclipse preference的maven 配置下指定maven的解压目录和setting.xml目录
  3. 配置本地仓库
  4. 配置仓库:中央仓库,私服(公司级别),镜像,项目仓库(单独开发,直接在项目pom文件中引用中央仓库)
  5. 新建maven项目:指定archetype,groupId,packageID,version,首次新建特定类型项目需要联网下载相应的项目模型。
  6. 使用pom管理项目构建依赖包,编写程序,保存pom时会自动从配置的仓库中下载依赖包。
  7. 运行程序,eclipse中的运行等同于启动mvn package命令,会自动下载相应包到指定仓库当中,并打包生成相应的classes和jar包。

maven仓库源配置

  • Settings中配置中央仓库,普通仓库,私服,镜像
  • Projects中直接引用中央仓库。

通常情况下,公司会搭建私服,然后配置settings引用私服。对于单独开发的程序员来说,可以在settings中配置开源中央仓库或者是镜像。也可以直接在项目的pom中指定仓库。第一种方式我没有成功过,第二种方式解决了问题,暂且先用第二种方式,以后有时间再仔细研究Maven仓库配置。

1. 首先在项目的pom.xml文件中配置开源仓库

<repositories>
        <repository>
            <id>jboss</id>
            <url>http://repository.jboss.com/maven2/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

2. 可以查看Maven repo视图,看到项目下面有相应的仓库,选中仓库,右键选择更新仓库index可以让用户在pom dependency里直接搜索到想要添加的jar包

3. 如果搜索不到相应的jar包,可以打开网站查询jar包的配置,点开即可查看相应内容

http://mvnrepository.com/

4. 在项目中为pom添加相应依赖包,保存,eclipse会自动开启下载。

Maven基础知识和环境搭建的更多相关文章

  1. Appium基础知识与环境搭建

    基础知识:  环境搭建: 1.安装jdk,配置java环境变量 (1)新建变量"JAVA_HOME",变量值"D:\Frameworks\Java\jdk1.8.0_18 ...

  2. Spring MVC基础知识整理➣环境搭建和Hello World

    概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...

  3. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  4. Android 基础知识 -- Linux环境搭建

    Android 开发工具下载网站:http://www.androiddevtools.cn/ 1 JDK 1.1 下载JDK,解压后放到/usr/lib/jvm/目录 sudo mv jdk1.7. ...

  5. Maven基础知识详解

    1. 简介   Maven在Java领域的应用已经非常广泛了,有了Maven的存在是的开发人员在搭建.依赖.扩展和打包项目上变得非常简单. 2. Windows安装Maven 下载安装包   http ...

  6. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...

  7. Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...

  8. SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 如果你是使用 Eclipse 你需要先安装 MyEclipse,请参考:SSM 框架-02-MyEclipse ...

  9. Python基础学习之环境搭建

    Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...

随机推荐

  1. BZOJ 3674: 可持久化并查集加强版

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3674 题意:三种操作:(1)合并ab所在集合:(2)查询ab是否在一个集合:(3) ...

  2. HDU 4997 Biconnected (状态压缩DP)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4997 题意:一个n个点的完全图中去掉一些边.求这个图有多少个子图是边双联通的.(就是去掉任意一条边之后 ...

  3. iOS深入学习(UITableView系列2:reloadData)

    接着前一篇的博客来深入学习UITableView, UITableView的数据源是NSMutableArray的对象_infoArray,现在数组的内容为{@"Zero",@&q ...

  4. git -C

    https://git-scm.com/docs/git -C <path> Run as if git was started in <path> instead of th ...

  5. [原创] 使用LP Wizard 10.5 制作 Allegro PCB封装

    本文只讲述使用 Calculator 和 Wizard 功能制作封装,通常学会使用这种方法,通用的标准封装就都可以生成了.下面以一个简单的SOIC-8封装的芯片来说明软件使用方法. 第一步,查找相关d ...

  6. vimperator学习教程

    有人总是说Vim难学,而Vimperator把火狐变成了VIM,所以很多人就认为只有那些VIM的狂热者才会用这个插件,但实际上并不是这样.Vimperator在安装之后,只要稍加练习,就可以让我们的浏 ...

  7. Servlet上下文

    Servlet上下文 运行在Java虚拟机的每一个Web应用程序都有一个与之相关的Servlet上下文. Java Servlet API提供了一个ServletContext接口来表示上下文.在这个 ...

  8. 原生js如何获取当前所加载网页的文件路径和名称

    结合使用string对象中的substr()和lastIndexOf()方法. 当前页面路径:file:///C:/Users/Administrator/Desktop/test.html < ...

  9. iOS 推送消息长度

    iOS最大推送消息长度 官方要求是256个字节 实际测试为1005个字节 在iPhone6上测试 锁屏时收到消息时只显示76个汉字,剩下的被隐藏 程序进入后台时只显示47个汉字,剩下的被隐藏

  10. poj2826An Easy Problem?!

    链接 繁琐细节题. 1.线段无交点时,ans=0; 2.如图 假设过p3.y的水平线与p1p2相交 因为雨是垂直下落的,左图的情况是无法收集到雨水的,而这种情况有一种简便的判定方式 cross(p1- ...