首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Maven打包三种方法和常用命令大全

目录 maven常用打包命令 1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 2 方法二:使用maven-assembly-plugin插件打包在...pom.xml中配置: 3 方法三:使用maven-shade-plugin插件打包在pom.xml中配置: maven常用打包命令 1、mvn compile 编译,将Java 源程序编译成 class...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里; 2、要能加载到依赖包...1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: ...用于生成META-INF/MANIFEST.MF文件的部分内容, com.xxg.Main指定MANIFEST.MF中的Main-Class, <addClasspath

4.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

浅谈 java 中构建可执行 jar 包的几种方式

会直接报错:无法找到主类或者找不到 xxx 依赖包/类,这是由于你没有定义 MANIFEST.MF 资源描述文件所致, 或者你直接把依赖的 jar 包打进了你最终的 jar,而这种嵌套的依赖...默认Maven生成的JAR包只包含了编译生成的.class文件和项目资源文件,而要得到一个可以直接在命令行通过 java命令运行的JAR文件,还要满足两个条件: JAR包中的/META-INF...Maven有好几个插件能帮助用户完成上述任务,不过用起来最方便的还是maven-shade-plugin,它可以让用户配置 Main-Class的值,然后在打包的时候将值填入/META-INF/MANIFEST.MF...在您的 POM 文件的插件部分添加清单 1 所示代码: 清单 1....附:Maven的坐标GAV(groupId, artifactId, version)定义 pom定义了最小的maven元素,允许groupId,artifactId,version。

3.8K50

改变maven打包路径_Maven打包技巧「建议收藏」

了解这一点非常重要,特别是当你需要自定义打包行为的时候,你就必须知道去配置哪个插件。...默认Maven生成的JAR包只包含了编译生成的.class文件和项目资源文件,而要得到一个可以直接在命令行通过java命令运行的JAR文件,还要满足两个条件: JAR包中的/META-INF/MANIFEST.MF...Maven有好几个插件能帮助用户完成上述任务,不过用起来最方便的还是maven-shade-plugin,它可以让用户配置Main-Class的值,然后在打包的时候将值填入/META-INF/MANIFEST.MF...下面是一个配置样例: org.apache.maven.plugins maven-shade-plugin 1.4 package shade com.juvenxu.mavenbook.HelloWorldCli...小结 打包是项目构建最重要的组成部分之一,本文介绍了主流Maven打包技巧,包括默认打包方式的原理、如何制作源码包和Javadoc包、如何制作命令行可运行的CLI包、以及进一步的,如何基于个性化需求自定义打包格式

2.2K20

sofa-ark类隔离技术分析调研

springboot的一个典型的fat-jar大抵如此: example.jar | +-META-INF | +-MANIFEST.MF +-org | +-springframework...jar +-dependency2.jar 在对项目进行打包的时候,插件会把所有依赖的包下载好,放到一个自定义的文件夹下(这里是BOOT-INF/lib)。...以上就是Fat-Jar技术的基本原理,其实核心就在于要定义一套Jar包的文件规范,并且写一个打包插件按照这个规范打包,然后写一个Launcher进行解包、用依赖包配置ClassLoader、用反射调用实际...为了解决这个问题,在0.4.0版本后,在打包Ark Plugin时,增加了一个shade属性,用于指定需要shade进来的jar包的maven坐标。...-SNAPSHOT-sofa-ark-biz.jar │ ├── container │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │

1.6K30

聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题

如果不进行处理,直接打包,就会出现同名配置文件覆盖的情况 本文就是要来聊聊当多个jar合并成一个jar,如何解决多个同名配置文件覆盖的情况 解决思路 通过maven-shade-plugin这个插件,利用插件的...于是在我面前就有两条路,一条是放弃maven-shade-plugin插件,比如选择其他类似的插件,比如maven-assembly-plugin,这种方案我试过,发现maven-assembly-plugin...这个插件的扩展配置,比maven-shade-plugin复杂一些,于是放弃。...扩展的思路 我并没采用直接修改maven-shade-plugin插件的方式,而是在maven-shade-plugin打包后的基础上,再进行插件定制。...实现的思路也不难,就是修改maven-shade-plugin打成jar后的spring.factories文件内容,将 图片 调整成形如下即可 图片 自定义maven插件spring-factories-merge-plugin

1.7K70

Maven - 统一构建规范:Maven 插件管理最佳实践

这些插件可以帮助开发人员更方便地管理构建过程中所需的各种资源,提高软件构建的效率和质量。 ---- 开源项目中的使用 我们来看下nacos这个开源项目的plugin是如何使用的。...以下是各个部分的解释: :开始定义一个插件。...:开始定义插件的配置。 :开始定义归档(archive)配置。 :开始定义 manifest 配置。...https://maven.apache.org/plugins/maven-shade-plugin/ Shade 插件的功能更为强大,其提供了两个功能: 第一个即与 assembly 类似可实现依赖的打包编译...Shade 插件 - 标签 下面介绍一下 Shade 插件中各标签的使用。 artifactSet 通过 includes 标签可以指定需要一同打包编译的第三方依赖。

1.2K30

spring boot应用启动原理分析

demo-0.0.1-SNAPSHOT.jar是spring boot maven插件生成的jar包,里面包含了应用的依赖,以及spring boot相关的类。下面称之为fat jar。...先来查看spring boot打好的包的目录结构(不重要的省略掉): ├── META-INF │   ├── MANIFEST.MF ├── application.properties ├── com.../com/example/SpringBootDemoApplication.class 可以看到对于Jar里的资源定义以’!/’来分隔。原始的JarFile URL只支持一个’!/’。.../META-INF/MANIFEST.MF定义URLStreamHandler,扩展JarFile和JarURLConnection 在构造一个URL时,可以传递一个Handler,而JDK自带有默认的...spring boot应用的maven打包过程 先通过maven-shade-plugin生成一个包含依赖的jar,再通过spring-boot-maven-plugin插件把spring boot loader

1.8K30

SpringBoot - 探究Spring Boot应用是如何通过java -jar 启动的

文章目录 Pre 引导 新建工程 打包 启动 java -jar 干啥的 打包插件 spring-boot-maven-plugin简介 包结构 META-INF内容 Archive的概念 JarFile...使用-jar参数时,后面的参数是的jar 【spring-0.0.1-SNAPSHOT.jar】,该jar文件中包含的是class和资源文件; 在manifest文件中有Main-Class的定义;Main-Class...spring-0.0.1-SNAPSHOT.jar ├── META-INF │ └── maven(主要是pom文件) │ └── MANIFEST.MF ├── BOOT-INF │ ├.../META-INF/MANIFEST.MF或[ArchiveDir]/META-INF/MANIFEST.MF Manifest getManifest() throws IOException...BOOT-INF/lib/*.jar List getNestedArchives(EntryFilter filter) throws IOException; } SpringBoot定义了一个接口用于描述资源

1.4K30
领券