今天有人问我打包后找不到主类,运行的类写在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. react-native-pg-utils(对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法.)

    react-native-pg-utils 对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法. 每次新建react-native项目之后都会发现有一些很常用的方法在这 ...

  2. c++ const修饰词

    常变量:  const 类型说明符 变量名    // const int i = 20;常变量定义必需初始化赋值且变量值不可更改 常引用:  const 类型说明符 &引用名  //引用:指 ...

  3. 如何利用新浪官方的短网址API接口实现T.cn短链接的压缩生成

    短网址的实现原理就是有一个数据表会配置文件将短网址和实际网址进行对应,当请求某个短网址时,程序跳转到对应的实际网址上去,从而实现网址的访问.目前国内最稳定最好用的是新浪T.cn短链接. 之前新浪提供了 ...

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

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

  5. kdc 互信

    环境: 29.3.203.53(sysops00065017) 部署KDC Namnode Datanode,KDC负责TESTA.COM域的认证 29.3.203.54(sysops00065018 ...

  6. redis服务及其配置与应用(window 环境下)

    一.redis简介:Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API(源自百度百科),个人更喜欢下面的解释:我们 ...

  7. mybatis用Map<Long,List<String>>作为参数

    mapper.xml文件里的<insert id="insertByMap" parameterType="java.util.Map"> inse ...

  8. BOM问题

    在php编写中,很多人喜欢用notepad editplus 等等在windows下编写程序, 这就很容易出现一个问题,那就是文件签名的东西--BOM!所谓BOM,全称是Byte Order Mark ...

  9. matlab gui界面设计记录

    我们要进行的程序是彩色图像处理试验示例,用这个程序来练习我们的gui前台设计. 程序功能介绍:具有彩色图像处理及保存和音乐播放功能效果如下图 2 在MATLAB的命令窗口中输入guide命令,打开gu ...

  10. 在matlab中读取trc文件

    用matlab的load()函数 1.相对路径读法(将文件放入'MATLAB\bin'目录): a = load('aizhenjiang_g10.trc') 2.绝对路径读法(任何位置) a = f ...