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

maven: 打包可运行的jar包(java application)及依赖项处理

类,然后用mvn exec:exec来运行,但是部署到生产环境中时,服务器上通常并不具备maven环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节: 一、依赖项的处理...java application运行时需要查找依赖的第三方jar,如果查找classpath失败,就会报错,可以先用 mvn dependency:copy-dependencies -DoutputDirectory...=target/lib 命令,把依赖的jar包全部导出到target/lib这个目录下 二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件 java application...jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件 1 2...,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项 ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar

2.1K90

详述使用 IntelliJ IDEA 解决 jar 包冲突的问题

在实际的 Maven 项目开发中,由于项目引入的依赖过多,遇到 jar 冲突算是一个很常见的问题了。在本文中,我们就一起来看看,如何使用 IntelliJ IDEA 解决 jar 包冲突的问题!...好办,点击鼠标右键,呼出右键菜单栏,然后点击Actual Size: [autoSize] 如上图所示,项目依赖图的尺寸放大了,这回利于我们排除 jar 包冲突的问题啦!...[conflict] 如果我们仔细观察上图,会发现在项目依赖图中,有一些红色标记的线,实际上,这些红色标记出来的线所指向的 jar 包,就是项目中冲突的 jar 包!...[exclude] 如上图所示,想要排除冲突的 jar 包,其方法为:点击冲突的 jar 包,右键呼出菜单栏,点击Exclude选项。...---------- ———— ☆☆☆ —— 返回 -> 史上最简单的 IntelliJ IDEA 教程 <- 目录 —— ☆☆☆ ————

4.6K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图「建议收藏」

    IntelliJ IDEA使用教程 (总目录篇) Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven...点完之后就会有下图 可以看到,这个maven项目的所有jar包依赖关系,一览无余。 为什么我的这个jar包依赖这么少呢,因为我这个项目只是简单示范了一下springmvc框架的使用。...所以,也没有引入过多的jar包,要是在一个大一点的项目里面,你使用定时任务了,使用poi了使用等等一些其他工具类的包,那么就会很多了。 下面说一些小技巧 自动适配这个页面的大小。...这种虚线,告诉你同一个jar都在哪里被多次引用了。 上面的都是理论姿势,那么实际中怎么使用呢? 比如下面的这个pom.xml里面有这么2个dependency的引入。...,spring-webmvc是依赖于spring-web的,所以,他是会自动的去添加这个jar包的。

    13.4K50

    使用groovy脚本使gradle灵活加载本地jar包的两种方式

    本人在使用Jenkins做测试项目的可持续集成过程中,构建工具用的gradle,但由于一些jar包是并私有仓库给用,暂时没有搭建计划。...为了解决这个问题,看了一些资料再研究了一点点gradle的使用后总结了两种方法。...第一种思路:把每个人的项目依赖的jar包地址给固定了,然后用判断当前用户是哪个,再去给complie files参数赋值。...比较笨,但是比较容易理解,由于框架的jar包和一些固定的jar包版本不怎么发生变化,维护成本较低。...这个比较简单,而且能够做到jar包版本更新的时候自动同步(服务端的jar有Jenkins生成)。暂时想到的比较好的办法。

    1.6K10

    【错误记录】IntelliJ IDEA 打包包含依赖库的 Jar 包执行报错 ( Invalid signature file digest for Manifest main attribute )

    包中的签名文件是无效的 , 删除 META-INF 目录下的签名文件即可 ; 打开压缩包 , 删除这两个 签名文件 ; 一、报错信息 ---- 处理依赖库时 , 选择将 依赖库 打包到 Jar 包内..., 配置如下 : 如果使用第二种方式 , 会在打包时 , 只对核心的主程序代码进行打包 , 将依赖库拷贝到同级目录中 ; 如果这样 , 将程序拷贝到其它目录时 , 还需要单独拷贝依赖库 , 这样操作比较繁琐...; 这是使用第二种方式 , 输出的 jar 包 , 要独立管理一堆 jar 包 ; 所需的依赖库 , 都在左侧的 " Extracted ‘xxx’ " 中 , 这样该依赖库就可以被打包到 jar...包中 ; 打包后的效果是下面的样式 , 一堆的包名文件 ; 执行上述 jar 程序 , 会报错 ; 完整报错信息 : D:\>java -jar App.main2.jar Error: A JNI..., 就不用签名文件 , 直接删除这两个签名文件 ; 使用压缩工具打开 , 这里我使用的是 7-zip 压缩工具打开了 jar 包 , 删除 MANIFEST.MF 和 MSFTSIG.RSA 两个签名文件

    2.1K30

    只会用 Spring Boot 创建微服务?这 4 种替代方案绝了!

    和 Helidon SE 一样,Ktor 没有开箱即用的 DI,所以在启动服务器依赖项之前应该使用 Koin 注入: val koinModule = module { single { ApplicationInfoService...程序大小 为了保证设置应用程序的简单性,构建脚本中没有排除传递依赖项,因此 Spring Boot 服务 uber-JAR 的大小大大超过了其他框架上的类似物的大小(因为使用 starters 不仅导入了必要的依赖项...;如果需要,可以通过排除指定依赖来减小大小): 备注:什么是 maven的uber-jar 在maven的一些文档中我们会发现 “uber-jar”这个术语,许多人看到后感到困惑。...所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自己代码中的class ,也会包含一些第三方依赖的jar,也就是把自身的代码和其依赖的jar全打包在一个jar里面了,所以就很形象的称其为...super-jar ,uber-jar来历就是这样的。

    21410

    【JDBC】JDBC 访问数据库 ( IntelliJ IDEA 创建 Gradle 工程 | build.gradle 导入数据库驱动依赖 jar 包 | 使用 JDBC 访问数据库 )

    文章目录 一、IntelliJ IDEA 创建 Gradle 工程 二、导入数据库驱动依赖 jar 包 1、为 Gradle 定义 Maven 仓库 2、添加 MySQL 数据库驱动依赖 3、添加 SQLServer...数据库驱动依赖 4、Maven 工程添加数据库驱动依赖 三、使用 JDBC 访问数据库 一、IntelliJ IDEA 创建 Gradle 工程 ---- 在 IntelliJ IDEA 的菜单栏中...二、导入数据库驱动依赖 jar 包 ---- 1、为 Gradle 定义 Maven 仓库 在 build.gradle 构建脚本 中 的 repositories 块中 , 定义 项目 依赖库...的 Maven 仓库 mavenCentral() ; 常见的 Maven 仓库有 : mavenCentral() : 中央 Maven 仓库 , 可以找到绝大多数的开源库 ; google() :...Google 维护的 Maven 仓库 , 中国国内无法访问 ; jcenter() : 已经停止维护 ; 2、添加 MySQL 数据库驱动依赖 添加 MySQL 数据库驱动依赖 : repositories

    2K50

    只会用 Spring Boot 创建微服务?这 4 种替代方案了解一下!

    和 Helidon SE 一样,Ktor 没有开箱即用的 DI,所以在启动服务器依赖项之前应该使用 Koin 注入: val koinModule = module {       single { ApplicationInfoService...程序大小 为了保证设置应用程序的简单性,构建脚本中没有排除传递依赖项,因此 Spring Boot 服务 uber-JAR 的大小大大超过了其他框架上的类似物的大小(因为使用 starters 不仅导入了必要的依赖项...;如果需要,可以通过排除指定依赖来减小大小): 备注:什么是 maven的uber-jar 在maven的一些文档中我们会发现 “uber-jar”这个术语,许多人看到后感到困惑。...所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自己代码中的class ,也会包含一些第三方依赖的jar,也就是把自身的代码和其依赖的jar全打包在一个jar里面了,所以就很形象的称其为...super-jar ,uber-jar来历就是这样的。

    2.5K40

    只会用 Spring Boot 创建微服务?那你就 OUT 了,还有这 4 种替代方案!

    和 Helidon SE 一样,Ktor 没有开箱即用的 DI,所以在启动服务器依赖项之前应该使用 Koin 注入: val koinModule = module {     single { ApplicationInfoService...程序大小 为了保证设置应用程序的简单性,构建脚本中没有排除传递依赖项,因此 Spring Boot 服务 uber-JAR 的大小大大超过了其他框架上的类似物的大小(因为使用 starters 不仅导入了必要的依赖项...;如果需要,可以通过排除指定依赖来减小大小): 备注:什么是 maven的uber-jar 在maven的一些文档中我们会发现 “uber-jar”这个术语,许多人看到后感到困惑。...所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自己代码中的class ,也会包含一些第三方依赖的jar,也就是把自身的代码和其依赖的jar全打包在一个jar里面了,所以就很形象的称其为...super-jar ,uber-jar来历就是这样的。

    6.2K20

    maven 插件之 maven-shade-plugin,解决同包同名 class 共存问题的神器

    这段话简明扼要的概述了 maven-shade-plugin 的功能 能够将项目连同其依赖,一并打包到一个 uber-jar 中 uber-jar 就是一个超级 jar,不仅包含我们的工程代码,还包括依赖的...,例如:*:*(相当于匹配上所有jar) exclude:排除项,也就是不会复制进 uber-jar;支持通配符配置 include:包含项,也就是只有这些会被复制进...除了手动指定 filter 外,此插件还支持自动移除项目中没有使用到的依赖类,以此来最小化 uber jar 的体积;configuration 配置如下 <minimizeJar...重定位 class 如果 uber-jar 被其他项目依赖,而我们的 uber-jar 又是保留了依赖 jar 的 class 的全类名,那么就可能类重复而导致类加载冲突;比如项目A依赖了我们的 maven-shade-plugin-demo...甲方扔给两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办?

    17610

    Java开发人员应该知道的前5个Spring Boot特性

    为了构建一个简单的基于Spring MVC的REST应用程序,它支持 Jackson 并将其运行为嵌入式容器,您至少需要以下依赖项: spring-core.jar spring-web.jar...通过使用Spring Boot Starter POM或入门依赖项功能,您只需在pom.xml中添加spring-boot-starter-web依赖项即可获得所有这些功能。...如果您正在构建 JPA应用程序,则可以通过聚合Spring Boot易于记忆和使用的常见依赖项和功能来添加“JPA”启动程序。...虽然自动配置和入门依赖项是Spring Boot的一个不可或缺的功能,但Spring CLI是一个可选项。您还需要安装Spring CLI才能使用它。...一旦下载了这些依赖项系列,自动配置会自动启动并配置使用,例如一旦spring-boot-web-starter出现在类路径中,它会下载spring-mvc.jar然后自动配置自动配置 DispatcherServlet

    99020

    IDEA 2024.1到底更新啥有用的?

    此外,新的快速修复可以根据代码库的要求简化隐式和显式类声明之间的切换。 另一项新检查为匹配代码段建议使用现有 static 方法,使代码可以轻松重用,无需引入额外 API。...此外,IDE 现在可以检测并报告永远不会执行的无法访问的代码。 2.4 通过多版本 JAR 增强的用户体验 IntelliJ IDEA 2024.1 通过多版本 JAR 库提供增强的用户体验。...这使得有效项目结构可以在几秒钟内获得,具有所有依赖项的完整项目模型则同时在后台构建,使您无需等待完全同步即可开始处理项目。...现在,IntelliJ IDEA 可以识别重命名工作流,在使用着色 JAR 及其依赖项时提供准确的代码高亮显示和导航。...如果 Bean 通过构造函数自动装配依赖项,则相关字段也会通过构造函数自动装配。

    20900

    IntelliJ IDEA 2024.1 更新亮点汇总:全面提升开发体验

    通过多版本 JAR 增强用户体验 IntelliJ IDEA 2024.1 通过多版本 JAR 库提供增强的用户体验。...我们修复了首次使用 Use sbt for builds运行 Scala/JVM 应用程序时引发异常的问题,并且我们确保在导入期间将模块的所有传递依赖项作为直接依赖项插入。...这使得可以在几秒钟内获得工作项目结构,同时在后台构建具有所有依赖项的完整项目模型,使您无需等待完全同步完成即可深入到项目中。...现在,IntelliJ IDEA 可以识别重命名工作流程,在使用着色 JAR 及其依赖项时提供准确的代码突出显示和导航。...如果 bean 通过构造函数自动装配依赖项,则相关字段也会通过构造函数自动装配。

    3.2K10

    探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率

    此外,新的快速修复可以根据代码库的要求简化隐式和显式类声明之间的切换。 另一项新检查为匹配代码段建议使用现有 static 方法,使代码可以轻松重用,无需引入额外 API。...我们修正了首次使用 Use sbt for builds(为构建使用 sbt)运行 Scala/JVM 应用程序时引发异常的问题,并确保在导入期间将模块的所有传递依赖项作为直接依赖项插入。...这使得有效项目结构可以在几秒钟内获得,具有所有依赖项的完整项目模型则同时在后台构建,使您无需等待完全同步即可开始处理项目。...现在,IntelliJ IDEA 可以识别重命名工作流,在使用着色 JAR 及其依赖项时提供准确的代码高亮显示和导航。...如果 Bean 通过构造函数自动装配依赖项,则相关字段也会通过构造函数自动装配。

    3.8K20

    APKLab:针对VS Code的Android逆向工程工具

    支持用户为APK签名提供密钥库; 下载并配置缺少的依赖项; 使用Smalise提供出色的Smali语言支持; 支持Linux、Windows和macOS; 工具依赖 JDK 8+:在Shell中运行下列命令...:apktool.jar的完整路径,或使用下列方式修改其版本: "apklab.apktoolPath": "/home/oozer/downloads/apktool_2.4.1.jar" apklab.apkSignerPath...:uber-apk-signer.jar的完整路径,或使用下列方式修改其版本: "apklab.apkSignerPath": "/home/oozer/downloads/uber-apk-signer...-1.1.0.jar" apklab.jadxDirPath:jadx-x.y.z目录的完整路径,或使用下列方式修改其版本: "apklab.jadxDirPath": "/home/oozer/downloads...apklab.keyAlias:存储密钥库中所使用密钥的别名。 apklab.keyPassword:存储密钥库中所使用密钥的密码。

    2.2K20

    【错误记录】IntelliJ IDEA 导出可执行 jar 包执行报错 ( java.lang.ClassNotFoundException | 打包时没有选择依赖库 )

    一、报错信息 参考 【IntelliJ IDEA】导出可执行 JAR 包 博客 , 从 IntelliJ IDEA 中导出 可执行 JAR 包 ; 执行 菜单栏 / Build / Build Artifacts...; 创建 Artifact 时 , 第一个选项 " extract to the target JAR " 仅导出 目标 jar 包 ; 第二个选项 才是 导出 目标 jar 包 和 所有的依赖项....jar 三、解决方案二 ---- 将所用到的 jar 包配置到 Class-Path 键值对中 , 多个依赖使用空格隔开 ; Manifest-Version: 1.0 Main-Class: cn.zkhw.schedule.graph.tools.LargeMapCanvas...-2.6.2.jar commons-math3-3.6.1.jar annotations-13.0.jar 只能基于当前的状态进行修补 , 那么将 依赖库的 jar 包拷贝到 导出 jar 包同一级目录..., 执行 java -jar xxx.jar 命令 ; 将依赖库都拷贝到 可执行 jar 包的同级目录 , 直接执行 java -jar xxx.jar 命令 , 程序可以正常执行 ;

    58810

    Android将jar不打包进apk的方法, Unsupported Modules Detected:,ScrollView can host only one direct child

    Android将jar不打包进apk的方法 一般是自己进行系统开发,系统中已经有jar了,你的apk在有的话就会造成冲突,安装会显示无效的apk 将compile改成provided Unsupported...jar或者依赖 他们的minSdk要比你的大,造成不兼容‘,也就是merge失败; 升级你的apk或者强制一下;use tools:overrideLibrary="xxx.xxx.sdk" to force..., 是Java,插件,Android或Maven组件;保存模块 路径,依赖项和其他设置。...IML文件用于存储较大的开发项目的较小部分。 IntelliJ IDEA使用.IPR文件进行存储 1个项目,它们可能引用多个IML文件。 IPR和IML都文件使用XML格式。...IML文件也指IntelliJ IDEA模块-IntelliJ IDEA的模块文件,也是文本 可以在文本编辑器中打开的文件。

    8610

    【Java】已解决java.lang.NoClassDefFoundError异常

    依赖的库或JAR包缺失或损坏。 二、可能出错的原因 类路径配置错误:类路径没有包含包含缺失类的JAR包或目录。...动态加载类问题:使用 Class.forName() 或其他动态加载机制时,指定的类名不正确或类文件不存在。 JAR包冲突:多个不同版本的JAR包被包含在类路径中,导致JVM加载了错误的版本。...使用构建工具: 如果你使用 Maven 或 Gradle 等构建工具,确保在 pom.xml 或 build.gradle 文件中包含了所有必要的依赖,并且这些依赖已经被正确下载到本地仓库。...五、注意事项 确保依赖项完整:在部署应用程序之前,检查所有必要的 JAR 包和类文件是否都已包含在类路径中。 检查版本兼容性:确保你的应用程序使用的所有库和框架都是兼容的,并且没有版本冲突。...避免硬编码类路径:尽量使用构建工具和 IDE 的自动配置功能来管理类路径,而不是在代码中硬编码类路径。 备份和版本控制:定期备份你的代码和依赖项,并使用版本控制工具(如 Git)来跟踪更改。

    2.4K10

    Fat JAR

    Fat JAR(也称为uber-JAR)是一个包含了其所有依赖项的可执行Java归档文件(JAR),这意味着它不仅仅包含了你自己编写的类和资源文件,还包括了所有你的应用程序运行时所需的第三方库。...这样做的好处是简化了部署过程,因为你只需要部署一个文件即可。 要创建一个Fat JAR,你可以使用构建工具如Maven或Gradle,它们都提供了打包所有依赖项到一个JAR中的插件。...以下是一个使用Maven的简单Fat JAR入门案例: 创建一个新的Maven项目你可以手动创建一个新的Maven项目,或者使用IDE来生成,项目结构通常如下所示: my-fatjar-app ├──...└── resources └── pom.xml 编辑 pom.xml 文件在 pom.xml 文件中,你需要添加 maven-assembly-plugin 插件配置,它会指导Maven如何打包你的应用程序和它的依赖项到一个...以上就是一个简单的Fat JAR入门案例。如果你使用的是Gradle,步骤将有所不同,但基本概念是相同的:你需要配置你的构建脚本以包含所有依赖,并创建一个可执行的JAR文件。

    41510
    领券