基本概念和生命周期

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. java基础 (java工程师入门应该了解的)

    1)建立Java开发环境 2)理解Java特性(features) 3)理解Java虚拟机软件的功能 4)描述垃圾回收概念 5)枚举实现Java代码安全方式 6)编码 编译  运行 JAav 应用程序 ...

  2. CodeForces 259A Little Elephant and Chess

     Little Elephant and Chess Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d &am ...

  3. JAVA排序--[选择排序]

    package com.array; public class Sort_Select { /** * 项目名称:选择排序 ; * 项目要求:用JAVA对数组进行排序,并运用选择排序算法; * 作者: ...

  4. implement Google's Open Source Slam "Cartographer" demos in ROS/rviz

    Cartographer is a backpack equipped with Simultaneous Localization and Mapping (SLAM) technology. 1. ...

  5. python_way day6 反射,正则 模块(进度条,hash)

    python_way day6 反射 正则 模块 sys,os,hashlib 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什 ...

  6. HDU5845 Best Division

    递归写法,好久不写很容易就gg了... dp[i]=max(dp[j])+1,并且s[i]XORs[j]<=x  01字典树优化一下转移. #include <bits/stdc++.h& ...

  7. 题目:在泛型为Integer的容器内添加一个字符串.

    这个题目有两种解法,第一种利用反射来解决: //ArrayList<Integer> list = new ArrayList<Integer>(); //在这个泛型为Inte ...

  8. tracert 命令详解

    tracert 命令详解 How to Use the TRACERT Utility The TRACERT diagnostic utility determines the route to a ...

  9. 关于时区的时间的详解,比如UTC\GMT等

    UTC 和 GMT 及 北京时间的关系 UTC和GMT,这两者几乎是同一概念.它们都是指的格林尼治标准时间,只不过UTC的称呼更为正式一点.两者的区别在于前者是一个天文 上的概念,而 后者是基于一个原 ...

  10. datagrid实现单行的选择、取消

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...