今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究)

具体解决如下

第一步:在pom文件中引入Maven Assembly Plugin插件 (注意:如果含有其他打包插件,最好先排除掉干扰)

 1             <plugin>
2 <artifactId>maven-assembly-plugin</artifactId>
3 <version>2.3</version>
4 <configuration>
5 <descriptor>src/main/resources/assembly.xml</descriptor>
6 </configuration>
7 <executions>
8 <execution>
9 <id>make-assembly</id>
10 <phase>package</phase>
11 <goals>
12 <goal>single</goal>
13 </goals>
14 <configuration>
15 <archive>
16 <manifest>
17 <mainClass>com.lingzhi.jedis.JedisTest</mainClass>
18 </manifest>
19 </archive>
20 </configuration>
21 </execution>
22 </executions>
23 </plugin>
24
25 </plugins>
26 </build>

第二步:在resources目录下创建插件的配置文件,这里名称为assembly.xml

 1 <assembly
2 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
5 <id>fat-tests</id>
6 <formats>
7 <format>jar</format>
8 </formats>
9 <includeBaseDirectory>false</includeBaseDirectory>
10 <dependencySets>
11 <dependencySet>
12 <outputDirectory>/</outputDirectory>
13 <useProjectArtifact>true</useProjectArtifact>
14 <unpack>true</unpack>
15 <scope>test</scope>
16 </dependencySet>
17 </dependencySets>
18 <fileSets>
19 <fileSet>
20 <directory>${project.build.directory}/test-classes</directory>
21 <outputDirectory>/</outputDirectory>
22 <includes>
23 <include>**/*.class</include>
24 </includes>
25 <useDefaultExcludes>true</useDefaultExcludes>
26 </fileSet>
27 </fileSets>
28 </assembly>

第三步,maven 打包

结果如上图,有两个jar包,其中下面这个就是包括test的,上面是默认情况

在配置文件中引入assembly插件时,有一些东西需要按照实际情况进行更改,比如主类入口,配置文件路径

打包并测试

执行maven命令:

mvn clean compile test-compile assembly:single

运行jar包:

java -jar test-1.0-assembly.jar

记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用的更多相关文章

  1. 由于xftp打开target目录,导致maven编译的时候target目录无法访问,打包失败

    由于xftp打开target目录,导致maven编译的时候target目录无法访问,打包失败: 在xftp里关闭target目录就可以了...无时不在的坑

  2. vue打包时,assets目录 和static目录下文件的处理区别(nodeModule中插件源码修改后,打包后的文件应放在static目录)

    为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-loader 解析,并查找资源URL.例如 ...

  3. Android 打包时 Keep 住某些方法或类

    # ${android_sdk}/tools/proguard/proguard-android.txt # Understand the @Keep support annotation. -kee ...

  4. tar 命令打包,除了某个目录剩下的都打包

    tar czvf beifen.tar.gz  ./webdata  --exclude webdata/uploadfiles

  5. 关于AndroidSDK配置时的tools目录下找不到adb.exe的错误

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在配置android SDK的时候,有时会发现在android-sdk-windows\tools目录下并没有adb.exe,这 ...

  6. maven打包时包含本地jar

    项目中需要使用maven的打包工具,生成zip压缩包,使用的插件是assembly-plugin.因为一些特殊的原因,需要使用一些本地的jar进行依赖,加载外部jar后编码过程中没有任何问题,但是打包 ...

  7. SpringBoot项目maven 打包时跳过测试

    在打包spring boot项目时,如果测试用例特别多,打包时间会增加: 而且测试用例有时忘记了做相应修改,在打包时则会报错而终止打包,就很烦. 所以这时会想在打包时跳过测试,大致有2种方法: 方法一 ...

  8. maven的安装与使用(运行单元测试和打包等)

    maven的下载与安装 maven是用于java的自动化构建工具. 1.下载: http://maven.apache.org/download.cgi 下载maven包,比如 apache-mave ...

  9. 使用Maven Assembly plugin将依赖打包进jar

    一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar.以前采用fatjar进行 ...

随机推荐

  1. PHP处理base64编码字符串

    接收前端传过来的base64编码后的字符串, 如果是json字符串, 那么PHP使用file_get_contents('php://input'); 来接收. 本次这里是以post传参的形式传bas ...

  2. webuploader+上传文件夹

    在web项目中上传文件夹现在已经成为了一个主流的需求.在OA,或者企业ERP系统中都有类似的需求.上传文件夹并且保留层级结构能够对用户行成很好的引导,用户使用起来也更方便.能够提供更高级的应用支撑. ...

  3. Java的23种设计模式 <二>

    1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of acc ...

  4. copy语法

    copy 和 mutableCopy 一个对象使用copy或者mutableCopy方法可以创建对象的副本 --------------- copy - 需要先实现NSCopying协议,创建的是不可 ...

  5. 复杂sql语句集锦

    本文主要讲一下笔者在工作中遇到的一些逻辑比较复杂的sql语句,下面是具体写法: SELECT IF ( LOCATE() , NULL, SUBSTRING( link, LOCATE() , IF ...

  6. HTTP中GET请求与POST请求的区别

    GET和POST是HTTP请求的两种基本方法.最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.但这只是表象,或者说只是现象,并不是核心.本文将细细谈谈对它们的 ...

  7. fastcgi代理

    一.fastcgi代理 1.示意图 2.fastcgi 代理配置语法 a.设置PHP服务代理地址 Syntax: fastcgi_pass address; Default: — Context: l ...

  8. highcharts 代码都对,但是不显示图片

    $('#container').highcharts({ chart: { zoomType: 'xy' }, title: { text: 'Average Monthly Temperature ...

  9. <JavaScript>为什么0.1+0.2=0.30000000000000004

    浮点数运算 你使用的语言并不烂,它能够做浮点数运算.计算机天生只能存储整数,因此它需要某种方法来表示小数.这种表示方式会带来某种程度的误差.这就是为什么往往 0.1 + 0.2 不等于 0.3. 为什 ...

  10. document.onselectstart=function(){return false;} 引起的拖动问题

    在网页中拖动时,会引起某些文字或一些内容被选中,导致网页中蓝蓝的一片,视觉效果很差,所以我加了个1.document.onselectstart=function(){return false;}或者 ...