基本概念和生命周期

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. 建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。

    package exception; public class TestException { public static void main(String[] args) { for(int i=0 ...

  2. Cheatsheet: 2014 02.01 ~ 02.28

    Database Managing disk space in MongoDB When to use GridFS on MongoDB .NET The Past, Present, and Fu ...

  3. SQL生成随机数

    ALTER FUNCTION [dbo].[ufn_Random] ( @A INT, @B INT ) RETURNS INT AS BEGIN /* 功能:生成随机数 */ ,) , SELECT ...

  4. printf()函数

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. printf()函数的调用格式为: printf("<格式化字符串>", <参 ...

  5. mysql以ROOT权限提权方法

    今天feng问了一个问题,mysql root权限运行,直接root服务器吧,SSH登录 正好上网查一下相关的资料: mysql .x里面引入了一个system函数,这个函数可以执行系统命令,当mys ...

  6. LINUX DIFF命令详解

    刚才在和公司做离线IP对比,最后手工了,感觉还是比较麻烦的,遇到数据很大的时候不能手工进行了 本想用linux下的DIFF来进行对比,发现结果很乱.时间很紧最后还是手工了. 现在忙完要认认真真学习一下 ...

  7. slogan

    nasa to infinity and beyond Werner Vogels at amazon all things distributed Kelly Johnson at Lockheed ...

  8. Codeforces Round #377 (Div. 2) D. Exams 二分

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  9. 关于PHP HTML <input type="file" name="img"/>上传图片,图片大小,宽高,后缀名。

    在我们的系统中,不免要上传图片,视频等文件,在上传中,需要做的一些判断,文件大小等方面. 注意: 在php.ini 中的post_max_size,upload_max_filesize默认为2M,在 ...

  10. effect c++ 口诀。

    常用条款,写成口诀,记住.知其所以,也要时时使用. 1)习惯c++: 联替const初. 2)构造,复制,析构: 要知默,构赋析. 若不需,明拒绝. 构析不调虚. 异不逃析构. 基析要虚函. 赋值操, ...