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>
相关推荐
客卿1238 分钟前
滑动窗口--模板
java·算法
zjjsctcdl31 分钟前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
Moe48843 分钟前
WebSocket :从浏览器 API 到 Spring 握手、Handler 与前端客户端
java·后端·架构
顶点多余44 分钟前
线程互斥+线程同步+生产消费模型
java·linux·开发语言·c++
⑩-1 小时前
Java基础+集合框架-八股文
java·开发语言
福运常在1 小时前
股票数据API(19)次新股池数据
java·python·maven
Zaki_gd1 小时前
Cortex-M7 D-Cache 与 DMA 缓存一致性说明
java·spring·缓存
多看书少吃饭1 小时前
Vue3 + Java + Python 打造企业级大模型知识库(含 SSE 流式对话完整源码)
java·python·状态模式
Arthas2171 小时前
Java大厂面试:从Spring到微服务的全面技术考察
java·jvm·spring·微服务·面试·并发
mifengxing1 小时前
力扣HOT100——(1)两数之和
java·数据结构·算法·leetcode·hot100