zoukankan      html  css  js  c++  java
  • maven

    1 什么是maven

    maven是一个标准化的Java项目管理和构建工具。可以用来管理jar包和构建项目;

    2 maven标准结构

    a-maven-project
    ├── pom.xml
    ├── src
    │   ├── main
    │   │   ├── java
    │   │   └── resources
    │   └── test
    │       ├── java
    │       └── resources
    └── target
    

    3 依赖管理

    3-1 依赖关系

    Maven定义了几种依赖关系,分别是compile、test、runtime和provided:

    scope 说明 示例
    compile 编译时需要用到该jar包(默认) commons-logging
    test 编译Test时需要用到该jar包 junit
    runtime 编译时不需要,但运行时需要用到 mysql
    provided 编译时需要用到,但运行时由JDK或某个服务器提供 servlet-api

    3-2 将maven镜像修改为国内阿里云

    在maven的conf目录中找到settings.xml,找到mirrors的标签,然后添加内容如下:

    <mirrors>
            <mirror>
                <id>aliyun</id>
                <name>aliyun</name>
                <mirrorOf>central</mirrorOf>
                <!-- 国内推荐阿里云的Maven镜像 -->
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            </mirror>
        </mirrors>
    

    3-3 搜索第三方组件

    那么,比如我们想导入一个jar包,那么怎么知道maven地址呢?
    方法是通过search.maven.org搜索关键字,找到对应的组件后,直接复制

    4 构建流程

    Maven不但有标准化的项目结构,而且还有一套标准化的构建流程,可以自动化实现编译,打包,发布,等等。

    4-1 maven生命周期

    在实际开发过程中,经常使用的命令有:

    mvn clean:清理所有生成的class和jar;

    mvn clean compile:先清理,再执行到compile;

    mvn clean test:先清理,再执行到test,因为执行test前必须执行compile,所以这里不必指定compile;

    mvn clean package:先清理,再执行到package。

    5 几个不同的仓库

    中央仓库
    其实我们使用的大多数第三方模块都是这个用法,例如,我们使用commons logging、log4j这些第三方模块,就是第三方模块的开发者自己把编译好的jar包发布到Maven的中央仓库中。

    私有仓库
    私有仓库是指公司内部如果不希望把源码和jar包放到公网上,那么可以搭建私有仓库。私有仓库总是在公司内部使用,它只需要在本地的~/.m2/settings.xml中配置好,使用方式和中央仓位没有任何区别。

    本地仓库
    本地仓库是指把本地开发的项目“发布”在本地,这样其他项目可以通过本地仓库引用它。但是我们不推荐把自己的模块安装到Maven的本地仓库,因为每次修改某个模块的源码,都需要重新安装,非常容易出现版本不一致的情况。更好的方法是使用模块化编译,在编译的时候,告诉Maven几个模块之间存在依赖关系,需要一块编译,Maven就会自动按依赖顺序编译这些模块。

  • 相关阅读:
    我学的是设计模式的视频教程——辛格尔顿,生成器VS工厂方法
    android在广播接收器BroadcastReceiver里面再进行发送广播,造成当前广播接收器不断循环执行问题
    Android 出现警告Exported service does not require permission
    Android中如何像 360 一样优雅的杀死后台服务而不启动
    Android下写一个永远不会被KILL掉的进程/服务
    android 程序防止被360或者系统给kill掉
    android如何让service不被杀死
    如何让自己的Android程序永不被系统kill
    TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)
    Android ListView的背景和黑色边缘化的问题
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/13111629.html
Copyright © 2011-2022 走看看