apache maven是一个用于项目构建和依赖管理的工具。

添加archetype

https://repo1.maven.org/maven2/archetype-catalog.xml

更改本地仓库存储位置:修改配置文件${user.home}/.m2/settings.xml或 $MAVEN_HOME/conf/setting.xml中的内容

<localRepository>...

mvn archetype:generate会非常慢,搜索了本地和远程太多archetype,而加上-DarchetypeCatalog=local将只搜索${user.home}/.m2/archetype-catalog.xml中定义的本地archetype,会大大提高速度。

mvn archetype:crawl会根据远程数据生成本地archetype目录$maven_localRepository/archetype-catalog.xml。

download jar, sources, javadoc

 mvn dependency:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]
eg. mvn dependency:get -Dartifact=mysql:mysql-connector-java:LATEST
mvn dependency:get -Dartifact=mysql:mysql-connector-java:LATEST:jar:sources

download sources/javadoc

 mvn dependency:sources -DincludeGroupIds=grouId1,groupId2... -Dclassifier=sources
mvn dependency:get -Dartifact=mysql:mysql-connector-java:LATEST:jar:sources download sources for each of dependencies in pom.xml
mvn dependency:sources
mvn dependency:resolve -Dclassifier=sources
download javadoc
mvn dependency:get -Dartifact=mysql:mysql-connector-java:LATEST:jar:javadoc
# download javadoc for each of dependencies in pom.xml
mvn dependency:sources -Dclassifier=javadoc
mvn dependency:resolve -Dclassifier=javadoc

copy dependecies

mvn dependency:copy -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=groupId:artifactId:version[:packaging][:classifier] -DoutputDirectory=[target]

输出依赖jar包文件路径

mvn dependency:build-classpath [-Dmdep.outputFile=/path/file](输出到文件)

mvn基本的几个jar包相关命令:

mvn clean 清除target/编译文件夹

mvn compile 编译源码

mvn package 编译并打包为jar文件

mvn install 将jar文件安装到本地repo

mvn deploy 根据pom.xml中的信息,将jar包部署到远程repo

跳过测试

mvn -DskipTests

指定pom文件

mvn -f some-pom.xml

插件描述文档

mvn help:describe -Ddetail -Dplugin=<plugin-name> 或 -Dcmd=<plugin>:<phase>
# mvn help:describe -Dplugin=exec
# mvn help:describe -Dcmd=install:install-file
# mvn help:describe -Dplugin=g:a:v

关闭mvn的日志输出

mvn -q

生成源码jar包

mvn source:jar

maven 3.x super pom位置

$M2_HOME/lib/maven-model-builder-3.x.jar:/org/apache/maven/model/pom-4.0.0.xml

######## unresolved #########

list addable dependencies in local repository

list addable dependencies all available repositories

list achetypes

(不可用)get file path of artifact

mvn dependency:location -Dartifact=g

maven——项目构建和依赖管理工具的更多相关文章

  1. 适合Linux嵌入式项目的代码构建与依赖管理工具——cazel

    前言 我们知道,现在有很多流行的优秀代码构建工具,如CMake.jetkins.bazel等.这些不同的构建工具在其应用的领域起到了举足轻重的作用. 但是,如果仔细研究就会发现,在嵌入式领域,构建工具 ...

  2. Maven01——简介、安装配置、入门程序、项目构建和依赖管理

    1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse   maven量级 1.2 Maven好处 同 ...

  3. Rust 之 cargo(项目构建和包管理工具)

    如果食用cargo来进行项目构建: 1. 执行 cargo new hello_cargo --bin ,执行完上面的操作之后,我们切换到hell_cargo目录下,可以看到一个文件(Cargo.to ...

  4. golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的

    golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的 1:执行脚本setGoPath.sh#!/bin/bashif [[ $GOPATH =~ .*$ ...

  5. 【Tool】Windows系统安装Maven依赖管理工具

    安装Maven依赖管理工具 官网下载地址:http://maven.apache.org/download.cgi 系统环境要求: [JDK]Maven3.3版本+需要JDK1.7版本以上支持 [内存 ...

  6. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

  7. Go 包依赖管理工具 —— govendor

    govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...

  8. Golang依赖管理工具:glide从入门到精通使用

    这是一个创建于 2017-07-22 05:33:09 的文章,其中的信息可能已经有所发展或是发生改变. 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰 ...

  9. 准备阶段-maven项目构建

    依据我现阶段对maven的了解,具使用POM管理项目和强大的repository资源管理库支持. 在项目建立初期,对网站的可拓展.高并发.易于管理做了评估.最终使用Maven 管理该项目 . 如下是m ...

随机推荐

  1. [COGS309] [USACO 3.2] 香甜的黄油

    ★★   输入文件:butter.in   输出文件:butter.out   简单对比 时间限制:1 s   内存限制:128 MB 描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖 ...

  2. spring-quartz定时器简单用法

    基本配置: 1.quartz.properties #============================================================== #Configure ...

  3. js的jsonp

    window.ajaxJsonp=function(params) { params = params || {}; params.data = params.data || {}; var json ...

  4. 非常适合新手的jq/zepto源码分析05

    zepto的原型  $.fn  属性: constructor //构造行数 forEach: emptyArray.forEach, //都是原生数组的函数reduce: emptyArray.re ...

  5. ORA_ROWSCN

    这是一个非常重要的特性.从oracle10g开始,oracle在表上引入了一个伪列ORA_ROWSCN.该列记录了每一列最后更改的SCN.但是有两种模式,一种是默认的是data block级别,另一种 ...

  6. 3.3-ISDN

    3.3-ISDN     综合业务数字网ISDN(Integrated Services Digital Network):     ISDN主要有两种接口类型:分为BRI(2B+D=2×64+16K ...

  7. C++与C的那些差异

    虽说C++是向后兼容C的,但C++与C还是存在许多差异.这里举了几个例子,也是我们很容易忽略的地方.如果你还知道其他的更多的Differences,或者发现什么错误,可以评论告诉我,大家一起学习进步. ...

  8. PHPthinking官方论坛招募版主

    时间飞逝.就在昨天,我们PHPthinking的官方论坛刚刚上线了我们自己的论坛! 欢迎大家注冊账号,活跃在论坛的大家庭中,我们会及时关注论坛公布的全部内容.在开发学习的过程中,遇到的不论什么问题,有 ...

  9. 运行Java -jar somefile.jar时发生了什么(二)

    (6)Java.c中的LoadMainClass 位置jdk/src/share/bin/java.c 该方法负责载入main函数所在的类. 该方法首先载入sun.launcher.LauncherH ...

  10. UVA1601 The Morning afther Halloween

    题目大意 w h (w, h <= 16)的网格有 n ( n <= 3) 个小写字母(代表鬼)其余的是‘#’(代表障碍格) 或 ‘ ’(代表空格. 要求把他们移动到对应的大写字母里.每步 ...