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>
相关推荐
wjm04100622 分钟前
C++日更八股--first
java·开发语言·c++
wei38724523243 分钟前
java练习2
java·开发语言·python
heyCHEEMS1 小时前
[USACO09OCT] Bessie‘s Weight Problem G Java
java·开发语言·算法
兔子蟹子2 小时前
JAVA中Spring全局异常处理@ControllerAdvice解析
java·spring
prinrf('千寻)2 小时前
项目右键没有add as maven project选项
java·maven
工业互联网专业2 小时前
基于springboot+vue的健康健身追踪系统
java·vue.js·spring boot·毕业设计·源码·课程设计·健康健身追踪系统
杰仔正在努力2 小时前
Java + Seleium4.X + TestNG自动化技术
java·开发语言·自动化
lynn-663 小时前
JAVA-使用Apache POI导出数据到Excel,并把每条数据的图片打包成zip附件项
java·apache·excel
振鹏Dong3 小时前
JVM | CMS垃圾收集器详解
java·jvm
情报员0073 小时前
Java练习6
java·算法·排序算法