Java——如何将一个maven项目打出多个jar包

简介: Java——如何将一个maven项目打出多个jar包

需求

一个maven项目中有多个类有main方法,一次打出多个jar包使这些jar包有不同的主函数

解决

方式一:通过多个pom文件打包

比如再写一个pom2.xml,使用命令 mvn install -f pom2.xml 指定pom文件进行打包

方式二:通过maven-assembly-plugin

案例:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>jar1</id>
      <configuration>
        <finalName>jar1</finalName>
        <archive>
          <manifest>
            <mainClass>com.test.Test</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      <phase>install</phase>
      <goals>
        <goal>assembly</goal>
      </goals>
    </execution>
    <execution>
      <id>jar2</id>
      <configuration>
        <finalName>jar2</finalName>
        <archive>
          <manifest>
            <mainClass>com.test.Test2</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      <phase>install</phase>
      <goals>
        <goal>assembly</goal>
      </goals>
    </execution>
  </executions>
</plugin>

扩展

方式二中可以打出两个jar包,名称为 jar1-jar-with-dependencies.jar 和 jar2-jar-with-dependencies.jar,这里后缀是自动加上的,怎么才能修改jar包的名称呢?


使用maven-antrun-plugin这个插件,通过move命令修改名称


详见 maven打完jar包之后将jar包放到指定位置总结 中的方式三


文章知识点与官方知识档案匹配,可进一步学习相关知识

相关文章
|
9天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
5天前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
42 17
|
28天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
122 26
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
63 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
8月前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
50 3
|
8月前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
44 2
|
存储 Java C语言
Java面向对象进阶5——包和final(含源码阅读)
包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护
108 0
Java面向对象进阶5——包和final(含源码阅读)
|
存储 Java
Java SE基础知识详解第[8]期—面向对象进阶(包、权限修饰符、抽象类、接口)
Java SE基础知识详解第[8]期—面向对象进阶(包、权限修饰符、抽象类、接口)
Java SE基础知识详解第[8]期—面向对象进阶(包、权限修饰符、抽象类、接口)

热门文章

最新文章