Maven相关常用操作——实用指南

  • 将jar 打到本地仓库
bash 复制代码
mvn install:install-file -Dfile=D:\protocol.jar -DgroupId=com.gdc -DartifactId=protocol -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true 
  • 配置JDK1.8 插件
xml 复制代码
<plugin>  
    <groupId>org.apache.maven.plugins</groupId>   
    <artifactId>maven-compiler-plugin</artifactId>  
    <configuration>  
        <source>1.8</source>  
        <target>1.8</target>  
        <encoding>UTF-8</encoding>  
    </configuration>  
</plugin>
  • 配置JDK1.7 插件
xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.1</version>
	<configuration>
		<source>1.7</source>
		<target>1.7</target>
                <encoding>UTF-8</encoding>  
	</configuration>
</plugin>
  • 打包发布时,跳过单元测试
xml 复制代码
<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <skipTests>true</skipTests>
    </configuration>
</plugin>
  • 将代码单独打包成一个jar
xml 复制代码
<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <!-- 存档 -->
        <archive>
            <manifest>
                <!-- 项目启动类 -->
                <mainClass>com.goldcard.test.openlink.LoadrunnerOpenlinkApplication</mainClass>
                <!-- 依赖的jar的目录前缀 -->
                <classpathPrefix>../lib</classpathPrefix>
                <!-- 使用唯一版本 -->
                <useUniqueVersions>false</useUniqueVersions>
                <!-- 添加classpath 开关 -->
                <addClasspath>true</addClasspath>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
            <!-- 配置清单(MANIFEST)属性 -->
            <manifestEntries>
                <Class-Path>../resources</Class-Path>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>
  • 依赖包打到指定目录插件
xml 复制代码
<!-- 将依赖包打包到 lib 目录 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <!-- 依赖包存放的位置 -->
                <outputDirectory>target/lib</outputDirectory>
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>false</overWriteSnapshots>
                <overWriteIfNewer>true</overWriteIfNewer>
                <includeScope>compile</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>
  • 资源文件插件
xml 复制代码
<!-- 此插件在Maven 多环境切换时,必须添加 -->
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <inherited>true</inherited>
    <configuration>
        <encoding>UTF-8</encoding>
        <!-- 配置资源文件中的变量分隔符(标识符),这里配置了两种变量分隔符 -->
        <delimiters>
            <delimiter>${*}</delimiter> <!-- 以${}为分隔符,例如 ${spring.profiles.active}  -->
        </delimiters>
    </configuration>
</plugin>
  • SpringBoot 项目打包插件
xml 复制代码
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <addResources>true</addResources>
        <finalName>LoadRunnerOpenlink</finalName>
        <mainClass>com.goldcard.test.openlink.LoadrunnerOpenlinkApplication</mainClass>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  • assembly 自定义打包插件
xml 复制代码
<!-- assembly 打包,设置指定的打包方式 -->
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <!-- assebly 配置文件位置 -->
        <descriptor>src/main/assembly/assembly.xml</descriptor>
        <!-- 打包之后的文件名称 -->
        <finalName>loadRunner-openLink</finalName>
        <appendAssemblyId>false</appendAssemblyId>
        <outputDirectory>./target</outputDirectory>
        <tarLongFileMode>gnu</tarLongFileMode>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <!-- 绑定到package生命周期阶段上 -->
            <phase>package</phase>
            <goals>
                <!-- 只运行一次 -->
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  • 将项目及依赖包打成一个jar包插件
xml 复制代码
<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-shade-plugin</artifactId>  
    <version>2.3</version>  
    <executions>  
        <execution>  
            <phase>package</phase>  
            <goals>  
                <goal>shade</goal>  
            </goals>  
            <configuration>  
                <transformers>  
                    <transformer  
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                        <!--指定main方法-->
                        <mainClass>com.goldcard.Test</mainClass>  
                    </transformer>  
                </transformers>  
            </configuration>  
        </execution>  
    </executions>  
</plugin>
相关推荐
孙克旭_14 分钟前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
2601_9619017019 分钟前
SpringCloud2023集成Nacos2.4.3
java
玄昌盛不会编程21 分钟前
LeetCode——2091. 从数组中移除最大值和最小值
java·算法·leetcode
Rain的Java大神之路24 分钟前
如何保证接口幂等
java·经验分享·后端·面试·架构
吴声子夜歌25 分钟前
Java——数组和集合(一)
java·开发语言
Jesse_EC27 分钟前
一个看不见的字符——CRLF 如何让我的 Docker 初始化脚本"静默失踪"
java·后端
深念Y27 分钟前
Nuxt 项目 Docker 构建:从 pnpm+node 迁移到全 bun
java·前端·docker
学长毕业设计31 分钟前
基于SpringBoot的社区鲜奶订购系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
呆呆敲代码的小Y36 分钟前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器
TinyMemory37 分钟前
Java 面向对象核心入门(六):this 关键字完全解析
java·笔记·面向对象·java新手·this关键字