Maven

一、Maven安装

官网:https://maven.apache.org/download.cgi
在这里插入图片描述
环境变量:MAVEN_HOME
值:解压出来的安装目录
在这里插入图片描述

Path中新建:%MAVEN_HOME%\bin
在这里插入图片描述

settings.xml 镜像:

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

在这里插入图片描述

idea配置:
在这里插入图片描述

二、Maven打包

1、maven-jar-plugin、maven-dependency-plugin
不含依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <!--配置JAR文件的清单-->
                    <manifest>
                        <!--是否将类路径添加到清单中,设置为true表示要添加类路径-->
                        <addClasspath>true</addClasspath>
                        <!--指定了类路径的前缀,设置为lib/表示类路径中的依赖JAR文件会放在lib/目录下-->
                        <classpathPrefix>lib/</classpathPrefix>
                       <!-- 指定了主类,即程序的入口点,它是在生成的JAR文件的清单中设置的-->
                        <mainClass>com.sgg.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

含依赖

<build>
    <plugins>
        <!-- 使用 maven-jar-plugin 创建 JAR 文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.2</version> <!-- 版本号可以根据需要进行调整 -->
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath> <!-- 将类路径添加到 MANIFEST.MF -->
                        <mainClass>com.example.Main</mainClass> <!-- 指定启动类 -->
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>jar</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <!-- 使用 maven-dependency-plugin 复制依赖 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.2.0</version> <!-- 版本号可以根据需要进行调整 -->
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase> <!-- 在打包阶段执行 -->
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- 指定复制依赖的目录 -->
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、spring-boot-maven-plugin
不含依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.6.3</version> <!-- 版本号可以根据需要进行调整 -->
            <configuration>
                <executable>true</executable> <!-- 将 JAR 文件设置为可执行文件 -->
            </configuration>
        </plugin>
    </plugins>
</build>

含依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.6.3</version> <!-- 版本号可以根据需要进行调整 -->
            <configuration>
                <!-- 可选配置 -->
                <mainClass>com.example.MyApplication</mainClass> <!-- 指定启动类 -->
                <executable>true</executable> <!-- 将 JAR 文件设置为可执行文件 -->
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal> <!-- 将依赖打包到可执行 JAR 文件中 -->
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3、maven-shade-plugin
执行clean、package之后生成三个jar
含依赖:
 Main20240103-1.0-SNAPSHOT.jar
 Main20240103-1.0-SNAPSHOT-shaded.jar
不含依赖:
 original-Main20240103-1.0-SNAPSHOT.jar
在这里插入图片描述

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <transformers>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <!--设置主函数-->
                        <mainClass>com.sgg.Main</mainClass>
                    </transformer>
                </transformers>
            </configuration>
            <executions>
                <execution>
                    <!--指定了插件执行的阶段,这里是在package阶段执行-->
                    <phase>package</phase>
                    <!--指定了插件执行的目标,这里是执行shade目标,即创建 JAR-->
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <!--标签用于配置过滤器,用于排除特定的资源文件-->
                        <filters>
                            <filter>
                                <!-- 指定了要过滤的依赖坐标,这里是通配符*:*,表示所有的依赖-->
                                <artifact>*:*</artifact>
                                <!--指定要排除的资源文件,这里排除了META-INF/*.SF,即所有JAR文件中的META-INF目录下的.SF文件-->
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

4、maven-assembly-plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <descriptorRefs>
                    <!--包含所有依赖的 JAR-->
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <!--入口-->
                        <mainClass>com.sgg.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <!--Maven 的构建生命周期的 package 阶段执行该插件-->
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <!--表示只执行一次-->
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

三、Maven命令

mvn compile:编译主目录中的Java源代码,并将编译后的.class文件输出到target目录中。
mvn clean:清理项目生成的临时文件,通常是删除target目录。
mvn test:编译测试目录下的Java源代码,并将编译后的.class文件输出到target/test-classes目录中。同时运行测试用例。
mvn package:将主目录的Java文件打包成JAR或WAR文件,并生成相应的包。
mvn install:将打包后的包安装到本地仓库中,供其他项目使用。
mvn deploy:发布打包后的文件到远程仓库,供其他人员下载依赖。
mvn site:生成项目文档和报告,并输出到target/site目录中。
mvn versions:set:用于设置或更改项目的版本号。
mvn dependency:tree:显示项目的依赖树,用于查看项目的依赖关系。
mvn archetype:generate:通过Maven Archetype插件生成一个新的Maven项目结构。
mvn exec:java:直接运行一个可执行的Java类。
mvn exec:java -Dexec.mainClass=com.example.Main:通过指定mainClass参数来运行指定的Java类。
mvn dependency:resolve:解析项目的依赖关系,并显示依赖的坐标信息。
mvn dependency:analyze:分析项目的依赖关系,并显示潜在的依赖冲突和未使用的依赖。
mvn validate:验证POM文件的配置是否正确。
mvn help:describe -Dplugin=help:获取指定插件的描述信息。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下@赶路人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值