maven几个知识点的记录

前言

写java这么久,使用maven也较多。由于工具的傻瓜式操作,对很多知识不理解。例如maven便是其中之一。这里总结几个maven使用中的知识点。

环境

mac系统
idea工具

知识点

  • 安装
    在mac安装maven非常方便。
    brew search maven
$ brew search maven
==> Formulae
maven ✔                                                     maven@3.2                                                   homebrew/linuxbrew-core/maven                               homebrew/linuxbrew-core/maven@3.2
maven-completion                                            maven@3.3                                                   homebrew/linuxbrew-core/maven-completion                    homebrew/linuxbrew-core/maven@3.3
maven-shell                                                 maven@3.5                                                   homebrew/linuxbrew-core/maven-shell                         homebrew/linuxbrew-core/maven@3.5

==> Casks
mavensmate

brew install maven

  • 配置环境变量

类似jdk,这里需要配置 MAVEN_HOME

$ cat /etc/profile
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

export MAVEN_HOME=/usr/local/Cellar/maven/3.6.0/libexec
export PHANTOMJS_HOME=/usr/local/phantomjs
export PATH=$PATH:$PHANTOMJS_HOME/bin
  • 查看系统全局maven的信息
$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_131, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.6", arch: "x86_64", family: "mac"
  • 查看当前项目的mvn 信息。
    mvn -X
  • 修改配置。
    由于maven的中央仓库在国外,因此需要修改为国内源。
    进入目录Maven home: /usr/local/Cellar/maven/3.6.0/libexec
    编辑 vi conf/settings.xml
    设置从阿里云的中央仓库下载资源。
<mirror>  
  <id>alimaven</id>  
  <name>aliyun maven</name>  
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>;  
  <mirrorOf>central</mirrorOf>          
</mirror>

设置本地仓库路径

 <localRepository>/Users/ft521/Documents/study/tools/maven-350</localRepository>

需要主要的地方,maven有2个配置。上面是全局配置。通常还有一个用户配置。路径位于
/Users/ft521/.m2 里面也存在一个settings.xml 而且优先级比全局的高。

  • 配置idea

这里我遇到一个坑,idea自带了maven,我忘记修改配置。导致下载依赖包速度非常慢。

因此这里我需要修改idea的maven配置,让它使用我们本地安装的maven。

image.png

maven插件的使用

  • 使用Maven Help插件
    help:active-profiles
    列出当前构建中活动的Profile(项目的,用户的,全局的)。
    help:effective-pom
    显示当前构建的实际POM,包含活动的Profile。
    help:effective-settings
    打印出项目的实际settings, 包括从全局的settings和用户级别settings继承的
    配置。
    help:describe
    描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件
    的 groupId 和 artifactId。

例如在项目中执行下面的命令。

$ mvn help:effective-settings

打印所有可用的环境变量和Java系统属性

$ mvn help:system

- 使用Maven archetype插件

  • 使用模板创建项目
    mvn archetype:generate
    执行之后会提示一些设置。按提示操作即可。

  • 使用本地模板。如果你本地没有自定义,则没有模板。
    mvn archetype:generate -DarchetypeCatalog=local
    这个表示使用开发者自定义的本地模板。

  • 如何创建自己的模板

在一个已经完整的项目中,进入项目文件夹,

$ mvn archetype:create-from-project

等待即可,最后看到一个SUCCESS就表示成功。

  • 将刚刚生成的模板发布到本地仓库中。
 mvn install

此时就可以使用你自定义的模板了。
此时再执行
mvn archetype:generate -DarchetypeCatalog=local
就会出现模板选择,输入数字即可。例如下图。

image.png
  • maven打包jar。
    打包jar有多种方式。这里我选择的是其中一种。一个jar包。一个lib文件夹。lib是依赖的jar

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.insigmaunited.lightai.net.server.LightaiServer</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266