• 记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用


    今天有人问我打包后找不到主类,运行的类写在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

  • 相关阅读:
    HTML5 WebSocket 权威指南 学习一 (第二章 WebSocket API)
    VM虚拟机 Centos7 lnmp环境 配置域名问题 windows浏览器访问的问题
    https方式下 git push 每次都要输入密码的解决办法
    浏览器禁用Cookie
    使用Nginx反向代理进行负载均衡
    使用Ajax异步上传文件
    装配Bean
    关于Struts2配置文件名修改的问题
    NIO
    部署描述符
  • 原文地址:https://www.cnblogs.com/yuluoxingkong/p/11836182.html
Copyright © 2020-2023  润新知