美文网首页
maven几个知识点的记录

maven几个知识点的记录

作者: 有时右逝 | 来源:发表于2019-07-09 10:46 被阅读0次

前言

写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>

相关文章

  • maven几个知识点的记录

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

  • Maven知识点记录

    项目中用到过,又容易忘的 1.scopecompile,缺省值,适用于所有阶段,会随着项目一起发布。test,只在...

  • maven 知识点记录

    : 打包时候使用的配置 给出打包过程中所用到的插件。

  • Maven命令结合IDEA

    概述:本文章主要记录了如何创建Maven项目,通过Maven导入jar包,Maven生命周期中的几个命令(mvn ...

  • maven依赖的使用-04

    maven相关知识点-04 通过maven在eclipces中创建项目 ①设置通过Maven创建的工程的JDK版本...

  • Maven知识点速查

    本文是学习项目管理利器——maven的Maven知识点速查 前置知识:无 Maven常用命令 compile 编译...

  • 记录几个小知识点

    Mysql数据库插入与更新: 小程序端,单独动态重命名某个页面时用到的是 setNavigationBarTi...

  • maven搭建和使用-01

    maven相关知识点 1.解压部署Maven核心程序 ​ ①检查JAVA_HOME环境变量​ C:...

  • Maven相关知识点

    1、maven setting.xml相关知道点 2、pom.xml相关知识点 3、maven常用插件(plugi...

  • maven继承的使用-05

    maven相关知识点-05 maven的继承 为什么需要继承机制?由于非 compile 范围的依赖信息是不能在“...

网友评论

      本文标题:maven几个知识点的记录

      本文链接:https://www.haomeiwen.com/subject/gwstkctx.html