好玩的大数据之22:Maven安装(Maven-3.6.3)


一、简介

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs(摘自百度百科)

二、下载


下载地址:https://www.scala-sbt.org/download.html

三、安装


    解压缩

    tar zxvf apache-maven-3.6.3-bin.tar.gz -C /mylab/soft

四、配置


   1.配置环境变量

            vi ~/.bashrc

#apache-maven-3.6.3

export MAVEN_HOME=$MYLAB_BASE_HOME/apache-maven-3.6.3

export PATH=$MAVEN_HOME/bin:$PATH

    2.增加国内maven源

 加速器,修改$MAVEN_HOME/conf文件夹下的settings.xml文件,添加如下镜像配置:

<mirrors>

    <mirror>

      <id>alimaven</id>

      <name>aliyun maven</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <mirrorOf>central</mirrorOf>

    </mirror>

  </mirrors>

注:参考sbt加速中的地址,不断尝试

五、验证


mvn -h

usage: mvn [options] [<goal(s)>] [<phase(s)>]

Options:

-am,--also-make                        If project list is specified, also

                                        build projects required by the

                                        list

-amd,--also-make-dependents            If project list is specified, also

                                        build projects that depend on

                                        projects on the list

-B,--batch-mode                        Run in non-interactive (batch)

                                        mode (disables output color)

-b,--builder <arg>                    The id of the build strategy to

                                        use

-C,--strict-checksums                  Fail the build if checksums don't

                                        match

-c,--lax-checksums                    Warn if checksums don't match

-cpu,--check-plugin-updates            Ineffective, only kept for

                                        backward compatibility

-D,--define <arg>                      Define a system property

-e,--errors                            Produce execution error messages

-emp,--encrypt-master-password <arg>  Encrypt master security password

-ep,--encrypt-password <arg>          Encrypt server password

-f,--file <arg>                        Force the use of an alternate POM

                                        file (or directory with pom.xml)

-fae,--fail-at-end                    Only fail the build afterwards;

                                        allow all non-impacted builds to

                                        continue

-ff,--fail-fast                        Stop at first failure in

                                        reactorized builds

-fn,--fail-never                      NEVER fail the build, regardless

                                        of project result

-gs,--global-settings <arg>            Alternate path for the global

                                        settings file

-gt,--global-toolchains <arg>          Alternate path for the global

                                        toolchains file

-h,--help                              Display help information

-l,--log-file <arg>                    Log file where all build output

                                        will go (disables output color)

-llr,--legacy-local-repository        Use Maven 2 Legacy Local

                                        Repository behaviour, ie no use of

                                        _remote.repositories. Can also be

                                        activated by using

                                        -Dmaven.legacyLocalRepo=true

-N,--non-recursive                    Do not recurse into sub-projects

-npr,--no-plugin-registry              Ineffective, only kept for

                                        backward compatibility

-npu,--no-plugin-updates              Ineffective, only kept for

                                        backward compatibility

-nsu,--no-snapshot-updates            Suppress SNAPSHOT updates

-ntp,--no-transfer-progress            Do not display transfer progress

                                        when downloading or uploading

-o,--offline                          Work offline

-P,--activate-profiles <arg>          Comma-delimited list of profiles

                                        to activate

-pl,--projects <arg>                  Comma-delimited list of specified

                                        reactor projects to build instead

                                        of all projects. A project can be

                                        specified by [groupId]:artifactId

                                        or by its relative path

-q,--quiet                            Quiet output - only show errors

-rf,--resume-from <arg>                Resume reactor from specified

                                        project

-s,--settings <arg>                    Alternate path for the user

                                        settings file

-t,--toolchains <arg>                  Alternate path for the user

                                        toolchains file

-T,--threads <arg>                    Thread count, for instance 2.0C

                                        where C is core multiplied

-U,--update-snapshots                  Forces a check for missing

                                        releases and updated snapshots on

                                        remote repositories

-up,--update-plugins                  Ineffective, only kept for

                                        backward compatibility

-v,--version                          Display version information

-V,--show-version                      Display version information

                                        WITHOUT stopping build

-X,--debug                            Produce execution debug output

五、国内仓库配置参考


网上收集了以下国内maven仓库

<mirrors>

        <mirror>

            <id>aliyun-maven</id>

            <name>阿里云公共仓库</name>

            <url>https://maven.aliyun.com/repository/public</url>

            <mirrorOf>public</mirrorOf>

        </mirror>

        <mirror>

            <id>alimaven</id>

            <name>aliyun maven</name>

            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

        <mirror>

            <id>CN</id>

            <name>OSChina Central</name>

            <url>http://maven.oschina.net/content/groups/public/</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

        <mirror>

            <id>aliyun-google</id>

            <name>阿里云谷歌仓库</name>

            <url>https://maven.aliyun.com/repository/google</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

        <mirror>

            <id>aliyun-apache-snapshots</id>

            <name>阿里云阿帕奇仓库</name>

            <url>https://maven.aliyun.com/repository/apache-snapshots</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

        <mirror>

            <id>aliyun-spring</id>

            <name>阿里云spring仓库</name>

            <url>https://maven.aliyun.com/repository/spring</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

        <mirror>

            <id>aliyun-spring-plugin</id>

            <name>阿里云spring插件仓库</name>

            <url>https://maven.aliyun.com/repository/spring-plugin</url>

            <mirrorOf>central</mirrorOf>

        </mirror>

</mirrors>

六、参考


https://www.jianshu.com/p/d95d0b1b6975 让maven使用国内镜像和archetypeCatalog

1.关于settings.xml

mvn -X

会有如下提示

[DEBUG] Reading global settings from /mylab/soft/apache-maven-3.6.3/conf/settings.xml

[DEBUG] Reading user settings from /home/hadoop/.m2/settings.xml

[DEBUG] Reading global toolchains from /mylab/soft/apache-maven-3.6.3/conf/toolchains.xml

[DEBUG] Reading user toolchains from /home/hadoop/.m2/toolchains.xml

[DEBUG] Using local repository at /home/hadoop/.m2/repository

[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /home/hadoop/.m2/repository

setting2.xml加入的以下内容

<mirror>

      <id>alimaven</id>

      <name>aliyun maven</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <mirrorOf>central</mirrorOf>       

</mirror>

里面有个<mirrorOf>central</mirrorOf>

代表的含义是

把我提供的这个阿里云的源当作central源的代理吧,以后你需要访问那个名为central的源时,就把所有的请求转发到我阿里云上。

那么central又是什么呢?原来maven自己内置了一个超级POM,里面预先定义了名为central对应的地址:

<repositories>

  <repository>

    <id>central</id>

    <name>Central Repository</name>

    <url>http://repo.maven.apache.org/maven2</url>

    <layout>default</layout>

    <snapshots>

      <enabled>false</enabled>

    </snapshots>

  </repository>

</repositories>

可以看到,central这个id对应的是http://repo.maven.apache.org/maven2。

2.关于archetype-catalog.xml

http://repo.maven.apache.org/maven2/archetype-catalog.xml

下载

将archetype-catalog.xml保存到userhome/.m2文件夹

mvn时指定-DarchetypeCatalog=internal

即可使用maven默认的archetype-catalog.xml,而不用再remote下载

通过以上设置,运行以下命令就可以体验飞一样的感觉

mvn archetype:generate\

-DgroupId=Group1\

-DartifactId=Flink-QuickStart-Scala\

-DarchetypeGroupId=org.apache.flink\

-DarchetypeArtifactId=flink-quickstart-scala\

-DinteractiveMode=false\

-DarchetypeVersion=1.11.1\

-DarchetypeCatalog=internal


其中archetypeCatalog用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置:

internal:maven-archetype-plugin内置的

local:mvn会使用本地的原型数据来供你选择生成骨架原型

remote:指向maven中央仓库的Catalog


3.IDEA设置archetype-catalog.xml

打开idea,点击File——>settings——>Maven——>Runner——在Runner配置页中的VM Options 中输入

        -DarchetypeCatalog=internal

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342