今天有人问我打包后找不到主类,运行的类写在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. Unable to find the requested .Net Framework Data Provider

    换了个系统后发现VS2010和VS2012都有同样问题,在SQL EXPLORER 里连不上SQL Server,这也导致了打不开 dbml文件,会报错: The operation could no ...

  2. sp_dboption

    http://www.yesky.com/imagesnew/software/tsql/ts_sp_da-di_8c32.htm A. ½«Êý¾Ý¿âÉèÖÃΪֻ¶Á ÏÂÃæµÄʾÀý½« ...

  3. Django基础之Session操作

    1. 创建一个示例 1.1 第一步 首先创建一个django项目,创建app01, 连接数据库,做好准备工作. 然后在templates目录下创建两个html: login.html负责登录页面: b ...

  4. 什么是挂载?mount的用处在哪?

    关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大.奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗. 1.提一句Windows下 ...

  5. ie8中使用ajax总是进入error解决办法

    试过很多种方法有的说是因为要把cache:false,但是本人遇到的情况可能不同最终结局的办法是 引用的是<script src="js/jquery-1.4.2.min.js&quo ...

  6. zstu 4237 马里奥的求救——(单调队列DP)

    题目链接:http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4237 这题可以转化为每次可以走g~d+x步,求最大分数,且最大分数的步数最少. ...

  7. 在SUSE LINUX中如何用命令行关闭防火墙?

    sudo /sbin/SuSEfirewall2 stop 因为系统重启防火墙会自动开启, 导致ssh远程无法登陆,但系统里是可以PING出.也可以上网. 所以需要永久性关闭系统自带的防火墙,命令如下 ...

  8. Install chocolatey

    Requirements Windows 7+ / Windows Server 2003+ PowerShell v2+ .NET Framework 4+ (the installation wi ...

  9. 【Spark机器学习速成宝典】推荐引擎——协同过滤

    目录 推荐模型的分类 ALS交替最小二乘算法:显式矩阵分解 Spark Python代码:显式矩阵分解 ALS交替最小二乘算法:隐式矩阵分解 Spark Python代码:隐式矩阵分解 推荐模型的分类 ...

  10. 图解Python 【第六篇】:面向对象-类-进阶篇

    由于类的内容比较多,分为类-初级基础篇和类-进阶篇 本节内容一览图: 一.类成员修饰符 每一个类的成员都有两种形式: 公有成员,在任何地方都能访问 私有成员,只能在类的内部才能访问 1.1.私有成员和 ...