李守中

Java Maven 相关

Table of Contents

1. 安装 Maven

1.1. Windows

去官网下载最新的压缩包,解压到本地。

比如解压路径为 D:\DevTools,解压后的文件夹为 D:\DevTools\apache-maven-3.6.3。

添加 D:\DevTools\apache-maven-3.6.3\bin 到 环境变量 -> 系统变量 -> Path

1.2. Linux

可以 sudo apt install maven 完成安装。

也可以从官网下载二进制包:

curl -O https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xzvf apache-maven-3.6.3-bin.tar.gz -C /opt

sudo ln -s /opt/apache-maven-3.6.3/bin/mvn /usr/bin 在 /usr/bin 目录下创建软链接指向 mvn 文件。或者 export PATH=/opt/apache-maven-3.6.3/bin:$PATH 将 bin 目录添加到环境变量。

2. 配置

maven 共提供了三个级别的配置,优先级依次递增,分别是:

  • 系统层级: MAVEN_OPTS 系统变量、 ${maven.home}/conf/settings.xml 文件;
  • 用户层级: ${user.home}/.m2/settings.xml
  • 工程层级: ${maven.projectBasedir}/.mvn/ 下的 extensions.xml, maven.config, jvm.config 文件。

使用中最常见的是进行用户层级的配置,其它配置层级一般使用默认配置,具体内容可参看官方文档。

2.1. 换国内源

Maven 默认使用国外的镜像,下载依赖包的速度很慢,最好换成国内源。

从 D:\DevTools\apache-maven-3.6.3\conf\settings.xml 找到 Maven 的配置文件。

在把 159 后的内容变为:

<mirror>
  <id>alimaven</id>
  <mirrorOf>central</mirrorOf>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

3. 插件

3.1. Java 项目打包时打入依赖

首先修改 pom.xml,加入插件。如下内容。

<build>
  <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    <plugins>
      ......
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
          <!--加上入口类,比如 cn.gridsah.App,可生成能直接运行的jar包-->
          <archive>
            <manifest>
              <mainClass>cn.gridsah.App</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
      ......
    </plugins>
  </pluginManagement>
</build>

在项目根目录下执行 mvn assembly:assembly ,成功后会在 target 文件夹下多出一个以 -jar-with-dependencies.jar 结尾的包. 这个包中包含了被依赖的所有 jar 包的 CLASS,并且可以执行。



Last Update: 2023-08-13 Sun 14:21

Generated by: Emacs 28.2 (Org mode 9.5.5)   Contact: [email protected]

若正文中无特殊说明,本站内容遵循: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议