maven使用

maven仓库:https://mvnrepository.com
插件:i. https://maven.apache.org/plugins/
ii. http://www.mojohaus.org/plugins.html

超级pam的位置:
maven-model-builder-3.3.9.jar/org/apache/maven/model/pom-4.0.0.xml

setting.xml的加载顺序:
大脑应该是一个搜索引擎,不应该是一个内存,不应该是一个磁盘,你要知道,来什么我去哪找,找什么,但是该背的也要背。
1
pom.xml
groupId com.gupaoedu
artfactId 功能命名
version 版本号
packaging 打包方式 默认是jar
dependencyManagement
1. 只能出现在父pom
2. 统一版本号
3. 声明 (子POM里用到再引)
Dependency
1. Type 默认jar
2. scope(如果你是一个追求极致的人,可以用scope这个概念去优化你的pom文件)
a) compile 编译(默认是compile) 例如spring-core
b) test 测试
c) provided 运行时不需要的jar包 例如 servlet
d) runtime 只有在运行时才需要用到 例如JDBC驱动实现(JDBC只定义接口,具体接口的实现由数据库厂商来完成,在编译的时候,只需要用接口就行了,不关心有没有对应的实现类。)
e) system 本地一些jar 例如短信jar

f) 依赖传递
g) 依赖仲裁
i. 最短路径原则
ii. 加载先后原则(下面的会覆盖掉上面的)
h) exclusions
i. 排除包

怎么看依赖树
首先配置maven环境变量

mvn dependency:tree > d.txt

所以啊,做程序员,为什么别人的效率高,别人一行命令解决啦,你还加班,你加班是应该的,不觉得么。

如何一行命令改父pom的版本号
首先使用下面的插件

org.codehaus.mojo
versions-maven-plugin
2.3

这行命令是:

mvn version:set -DnewVersion=1.1-SNAPSHOT

生命周期 lifecycle/phase/goal
A Build Lifecycle is Made Up of Phases
A Build Phase is Made Up of Plugin Goals

版本管理
a) 1.0-SNAPSHOT
i. repository 删除
ii. mvn clean package -U (强制拉一次)

b) 主版本号.次版本号.增量版本号-<里程碑版本>
1.0.0-RELAESE

常用命令
a) compile

b)  clean    删除 target/
    命令:mvn clean
c)  test       test case junit/testNG
    命令:mvn 
d)  package 打包

e)  install    把项目install到local repo

f)  deploy    发本地jar发布到remote

Build Order的执行顺序由两部分决定:module的顺序和依赖关系。

插件
a) 常用插件
i. https://maven.apache.org/plugins/
ii. http://www.mojohaus.org/plugins.html
iii.findbugs 静态代码检查
命令:
mvn findbugs:findbugs

iv. versions 统一升级版本号
    1.  mvn versions:set -DnewVersion=1.1
v.  source 打包源代码
vi. assembly 打包zip、war
vii.tomcat7

自定义maven插件
自定义maven插件的参考文档: https://maven.apache.org/guides/plugin/guide-java-plugin-development.html
a) maven-plugin
b) extends AbstractMojo

c)

package com.gupao;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import java.util.List;

@Mojo(name = “gupaoedu”, defaultPhase = LifecyclePhase.PACKAGE)
public class GupaoMojo extends AbstractMojo {

@Parameter
private String msg;

@Parameter
private List<String> options;

@Parameter(property = "args")
private String args;

public void execute() throws MojoExecutionException, MojoFailureException {
    System.out.println("gupaoedu plugin  !!!" + msg);
    System.out.println("gupaoedu plugin  !!!" + options);
    System.out.println("gupaoedu plugin  !!!" + args);
}

}

d) mvn install
e) 参数传递

Profile
a) 使用场景 dev/test/pro
b) setting.xml 家和公司两套

仓库
a) 下载
b) 安装 解压
c) 使用http://books.sonatype.com/nexus-book/reference3/index.html
i. http://192.168.1.6:8081/nexus
ii. admin/admin123
d) 发布
发布的时候,项目中pom文件的配置

发布的时候,本地中setting.xml的配置

e) 下载jar配置
i. 配置mirror
ii. Profile

archetype 模版化
a) 生成一个archetype
在项目的根目录下,执行下面的命令
i. mvn archetype:create-from-project
ii. cd /target/generated-sources/archetype
iii. mvn install

b) 从archetype创建项目 (命令行新建)
mvn archetype:generate -DarchetypeCatalog=local

作者:Casablanca_jhBi
来源:CSDN
原文:https://blog.csdn.net/weixin_37243717/article/details/79607023
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值