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包放到指定位置总结 中的方式三


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

相关文章
|
20天前
|
IDE Java 开发工具
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
29 0
|
2天前
|
Java 数据库连接 Maven
【Java笔记+踩坑】Maven高级
分模块开发、依赖传递与冲突问题、 可选依赖和排除依赖、聚合和继承、属性、多环境配置与应用、私服安装和使用
【Java笔记+踩坑】Maven高级
|
17天前
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
|
21天前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
|
21天前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
21天前
|
Java Spring
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
|
21天前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
23天前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
弹性计算 数据可视化 关系型数据库
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
5552 0
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
|
23天前
|
JavaScript Java Python
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容

推荐镜像

更多