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

如何在运行maven可执行jar时重用本地依赖项?

在运行maven可执行jar时重用本地依赖项可以通过使用Maven Shade插件来实现。该插件可以将所有的依赖项打包到生成的可执行jar中,以便在运行时重用。

以下是使用Maven Shade插件重用本地依赖项的步骤:

  1. 在项目的pom.xml文件中添加Maven Shade插件的配置:
代码语言:txt
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <createDependencyReducedPom>false</createDependencyReducedPom>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

这将在打包阶段执行Maven Shade插件。

  1. 运行以下Maven命令进行打包:
代码语言:txt
复制
mvn package

这将生成可执行的jar文件。

  1. 在命令行中运行可执行的jar文件时,可以使用以下命令:
代码语言:txt
复制
java -jar your-jar-file.jar

这将运行可执行的jar文件,并自动重用本地依赖项。

通过以上步骤,您可以在运行maven可执行jar时重用本地依赖项。请注意,Maven Shade插件不仅可以重用本地依赖项,还可以将所有的依赖项打包到生成的可执行jar中,以确保应用程序的可移植性和独立性。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 2 org.codehaus.mojo...,但是部署到生产环境中,服务器上通常并不具备maven环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节: 一、依赖的处理 java application运行时需要查找依赖的第三方...jar,如果查找classpath失败,就会报错,可以先用 mvn dependency:copy-dependencies -DoutputDirectory=target/lib 命令,把依赖jar...: Plexus Archiver 其中第4行指定了classpath,也就是所依赖jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这...ok了,部署jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar  xxx.jar就可以了,如果要在后台运行,前面加 nohup

2.1K90
  • MAVEN之pom文件的快速应用

    目前依赖的作用域可以使用5个值: 定义项目的依赖的时候,我们可以通过scope来指定该依赖的作用范围。...compile范围内的 依赖在所有情况下都是有效的,包括运行、测试和编译。 runtime:表示该依赖只有在运行时才是需要的,在编译的时候不需要。...provided:表示该依赖将由JDK或者运行容器在运行时提供,也就是说由Maven提供的该依赖我们只有 编译和测试才会用到,而在运行时将由JDK或者运行容器提供。...system:当scope为system,表示该依赖是我们自己提供的,不需要Maven到仓库里面去找。...MAVEN如何可执行JAR包 前提条件:已成功将待引入的jar包安装到本地repository中 方法一、使用maven-shade-plugin插件打可执行jar包 插件查找链接:http

    1.2K20

    maven是什么(下)

    仓库的分类 本地仓库 一般来说,Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。当Maven执行编译或测试,如果需要使用依赖文件,它总是基于坐标使用本地仓库的依赖文件。...私服的好处: 节省自己的外网速度 加速Maven构建 部署第三方构建 提高稳定性,增强控制 降低中央仓库的负荷 仓库使用顺序 三者之间的关系是,当我们项目中依赖一个jarMaven程序会先去本地仓库中找...而使用正式版本的模块不更改版本号的情况下,编译打包,如果本地已经存在该版本的模块则使用本地的而不是主动去镜像服务器上下载。 mvn在上传jar包到私服和正常构建进行依赖下载,都会在本地存一份。...mvn clean test 运行清理和测试 mvn clean package package命令完成了项目编译 单元测试 打包功能,但没有把打包的可执行jar包(war包或其它形式的包)部署到本地...maven仓库和远程maven私服仓库 mvn clean install isntall命令完成了项目编译 单元测试 打包功能,同时把打包的可执行jar包(war包或其它形式的包)部署到本地maven

    75730

    Capsule:开源的JVM应用部署工具

    你可以这样来理解capsule,将它当作steroids上的1个fat JAR允许本地库的同时也不会干扰到依赖)与1个声明式启动脚本的整合;另一个理解方式是,将其当作部署阶段的构建工具。...无论多么复杂,不管有多少JAR文件组成,或者有多少脚本语言的源文件还是本地库,Capsule都可以包装任何JVM应用到一个名为 Capsule的可执行JAR,并且可以在任何平台上运行。...Capsule可以直接包含应用的所有依赖,或简单地声明部分或者全部,一旦发布将会被完整的下载。这就是fat JAR的工作方式。...capsule首次安装,其正常运行需要依赖1个临时目录中生成的一些文件,随后用户可以在任何时刻删除这些文件,不会对capsule产生任何不良影响。...,Avatar运行时——包括针对本地操作系统的本地库,将从Maven repository下载到本地并缓存,并与其他Avatar capsules共享。

    1.1K90

    云原生时代高性能Java框架—Quarkus(二)

    可以看到其中有个重要的文件:XXX-runner,它是一个对JVM不依赖本地可执行文件,我们可以运行他来启动应用程序。 $ ....对比 在这里我们可以对比本地可执行文件与传统基于jvm启动速度的对比 运行如下命令,生成传统应用程序的jar文件: ./mvnw package 分别运行本地可执行文件和jar文件: ?...为native的profile中配置具体的配置参数来自定义本地镜像(本地可执行文件)的生成。...运行本地镜像测试和普通测试的方式有差异,本地镜像测试需要使用Maven命令来启动,我们IDEA控制台中运行./mvnw verify -Pnative即可启动本地镜像测试。...总结 本文主要介绍了Quarkus框架的本地化相关操作,我们具体介绍了如何将Quarkus项目编译成本地可执行文件,随后又演示了如何将生成的可执行文件打包成Docker镜像,最后我们演示了如何本地可执行文件的形式测试业务代码

    1.3K30

    Maven项目管理

    另外也可以打成可执行 jar包, 这样的包就可以通过 java -jar命令来执行 war包可以理解为是⼀个web项目,里面是项目的所有东西, 通常用于网站. 3.3 依赖管理 依赖管理:方便快捷的管理项目的依赖的资源...(jar包),避免版本冲突的问题 pom.xml就是 Maven 的配置文件,用来描述项目的各种信息 依赖配置 依赖:只当前项目运行的所需要的 jar包 比如:学习 JDBC 的时候,我们需要手动下载...刷新完之后, 就可以项目中看到新加入的jar依赖传递 早期我们没有是用 maven, 向项目中添加依赖jar包,需要把所有的jar包都复制到项目工程下....我们只需要在pom.xml文件中, 定义直接依赖就可以了, 由于 maven依赖具有传递性,所以会自动把所依赖的其他jar包也⼀起导入 如上图, 项目A 通过Maven 引入 Jar A ...Maven 仓库 通过几行代码就可以把需要的 jar包放进项目中,是如何做到的呢?

    15710

    Gradle -- 初体验

    几乎所有基于JVM的软件项目都需要依赖外部类库来重用现有的功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖带来的版本冲突。...一个jar包属于一个工件,gradle中,工件仓库的坐标是group、name以及version。...依赖传递 如果B依赖A,C依赖B,那么C依赖A。 依赖阶段 依赖阶段分为两个阶段,即编译阶段和运行阶段,而测试也是分为这两个阶段。编译阶段所依赖jar包,在运行阶段也会依赖。...compile : 编译阶段 runtime : 运行阶段 testCompile : 测试编译阶段 testRuntime : 测试运行阶段 添加依赖 例如现在我需要fastjson的依赖,首先到Maven...我们可以自定义目录中通过cmd的 mkdir .gradle 创建目录并在这里进行配置: ? 经测试,未配置本地仓库的时候,缓存的jar包会保存的.gradle的目录下。 ?

    1K20

    教你不用下载 maven,不用配置环境变量, idea 上创建 maven 项目

    Maven Maven是⼀个⽬管理⼯具, 通过 pom.xml ⽂件的配置获取 jar 包,⽽不⽤⼿动去添加 jar 包,这样就大大的提高了开发效率 2. Maven 的核心功能 2.1....管理依赖 Maven 通过 pom.xml 文件的配置获取 jar 包,当前项目运行所需要的 jar 包就是依赖,例如 JDBC 的使用需要导入mysql-connector-java 的包,并且添加到项目中...导入上面的 jar 包之后发现除了 mysql 的包还导入了另外一个包,这就是依赖传递 例如下面导入 jar A 之后,B 和 C 也会导进来,这样就可能会发生依赖的冲突,例如导入了一个相同 jar...Maven 仓库 Maven 仓库本质上是一个目录,目录里边存放开发中的所有的依赖(包括 jar 包,插件等) Maven 仓库分为本地仓库和远程仓库,远程仓库又有中央仓库,私服和其他公共库 3.1....本地仓库 如果每次加载依赖都从中央仓库加载的话就会很慢,如果第一次加载先把中央仓库的依赖加载到本地仓库,之后再加载的时候就直接加载本地仓库就会快很多 设置里面搜索 MavenMaven本地仓库地址

    16110

    Spring Boot 打包插件,真是太有用了!

    栈长在之前的文章分享过关于 Spring Boot 打包运行的两篇文章: 运行 Spring Boot 应用的 3 种方式 Spring Boot 怎么打一个可执行 Jar 包?...Spring Boot 对 Maven 一直支持很友好,栈长也一直在用 Maven 进行依赖和项目管理,那么今天就讲一下这个插件的作用,非常有用!...有了 Spring Boot Maven Plugin 这个插件,我们可以将项目打成可执行jar 包(*.jar)以及 war 包(*.war),可以帮助我们很方便的运行 Spring Boot 应用... 1、直接运行 Spring Boot 应用 Maven 命令行使用: mvn spring-boot:run 如果在 IDE 开发工具中,可以省去 mvn 命令: ?...:PropertiesLauncher; NONE:打包所有依赖和项目资源,不绑定任何启动加载器; classifier: 默认情况下只会打一个包,但是如果这个模块既是其他模板的依赖,自身又需要打成可执行运行

    2.6K10

    从开发角度看四类企业应用架构1: 通过Maven编译并运行一个Java应用

    当我们pom.xml文件中命名依赖关系,可以给它们一个范围。 这些范围控制构建生命周期中依赖的使用位置,以及它们是否包含在构件中。...mvn install -这就将artifact安装在本地Maven存储库中,以用作其他项目的依赖的包。...此项目的包装格式为jarMaven确保构建项目,将生成一个带有适当MANIFEST条目的JAR文件,其中包含有关该jar文件的元数据。 ?...构建独立于平台的可执行JAR文件,该文件可以使用java -jar命令运行。...尽管此项目不使用任何外部依赖,但具有大量依赖JAR文件的项目可以打包为单个大型的fat jar文件,可以直接执行,而无需将所有相关的JAR文件明确添加到CLASSPATH maven-assembly-plugin

    1.5K20

    Spring Boot最常见面试题

    依赖管理是任何项目的关键方面。当项目足够复杂,管理依赖可能会变成一场噩梦,因为涉及的工件太多了。 这是Spring Boot入门者派上用场的地方。...这种命名模式使您可以轻松找到启动器,尤其是使用支持按名称搜索依赖关系的IDE撰写本文,我们有超过50个启动器。...部署期间配置服务器的一个小错误可能会导致灾难性后果。 Spring通过提供一个插件即spring-boot-maven-plugin来解决这个问题,将Web应用程序打包为可执行JAR。...此JAR包含所有必需的依赖,包括嵌入式服务器。因此,我们不再需要担心配置外部服务器。 然后我们就像普通的可执行JAR一样运行应用程序。...十二、如何编写集成测试? 在为Spring应用程序运行集成测试,我们必须有一个ApplicationContext。

    1.4K30

    【愚公系列】2023年03月 Java教学课程 121-Maven的概念与基本使用

    POM中,可以指定项目所依赖的库和组件的版本号、URL地址等信息,Maven会自动下载和安装这些依赖,并将它们放置特定的目录中,供项目使用。...依赖传递:Maven自动处理依赖的传递性,即如果A依赖于B,而B又依赖于C,那么Maven会自动下载和安装B和C,并将它们添加到A的依赖中。...: bin:可执行程序目录, boot:maven自身的启动加载器 conf:maven配置文件的存放目录 lib:maven运行所需库的存放目录 2.3 环境配置 maven运行需要java的环境,...此时我们可以去本地仓库中查找,如何查找?...,反之则越高 (2)声明优先:当资源相同层级被依赖,配置顺序靠前的覆盖靠后的 (3)特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的 可选依赖: 排除依赖: 5.2 依赖范围

    85020

    高薪必备的一些Spring Boot高级面试题

    当项目足够复杂,管理依赖可能会变成一场噩梦,因为涉及的组件太多了。 这就是Spring Boot 的starter就派上用场了。...部署期间配置服务器的一个小错误可能会导致灾难性后果。 Spring通过提供一个插件即spring-boot-maven-plugin来解决这个问题,将Web应用程序打包为可执行JAR。...有了这个插件,我们将在执行包阶段后得到一个fat JAR 。此JAR包含所有必需的依赖,包括嵌入式服务器。因此,我们不再需要担心配置外部服务器。...然后我们可以像运行普通的可执行JAR一样运行应用程序。 请注意,必须将pom.xml文件中的packaging元素设置为 jar 才能构建JAR文件: ? 如果我们不包含这个元素,它也默认为jar。...并将容器依赖关系从打包文件中删除: ? 执行Maven 包阶段后,我们将拥有一个可部署的WAR文件。 ? 问 如何在Spring Boot启动的时候运行一些逻辑?

    1.8K10

    Maven

    拉尔夫·约翰逊和唐·罗伯茨“进化框架模式”中最喜欢的一句话:       人们通过从具体例子中概括出来来发展抽象。没有实际开发运行系统的情况下,每次尝试纸上确定正确的抽象都是注定要失败的。...这样做几种缺陷,如果在开发过程中,发现B中的bug,则必须将B项目修改好,并重新将B打包并对A项目进行重编译操作,完成A项目的开发后,为了保证A的正常运行,就需要依赖B(就像在使用某个jar必须依赖另外一个...两个都很麻烦,前者可能造成资源的浪费(比如,开发者可能正在开发依赖B的其它项目,B已经存储到本地了,导入A的jar包的话,就有了两个B的jar),后者是我们常遇到的,找各种jar包,非常麻烦(有了maven...所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里...所以,每个创建的maven项目都会要求写上这三个属性值的。 ? 看完上面这些再看看我绘制的图,估计能理解个八九不离十: ?

    1K20

    Fat JAR

    Fat JAR(也称为uber-JAR)是一个包含了其所有依赖可执行Java归档文件(JAR),这意味着它不仅仅包含了你自己编写的类和资源文件,还包括了所有你的应用程序运行时所需的第三方库。...要创建一个Fat JAR,你可以使用构建工具如Maven或Gradle,它们都提供了打包所有依赖到一个JAR中的插件。...pom.xml 文件中,你需要添加 maven-assembly-plugin 插件配置,它会指导Maven如何打包你的应用程序和它的依赖到一个Fat JAR中。...运行你的Fat JAR你可以使用以下命令运行生成的Fat JAR: java -jar target/my-fatjar-app-1.0-SNAPSHOT-jar-with-dependencies.jar...以上就是一个简单的Fat JAR入门案例。如果你使用的是Gradle,步骤将有所不同,但基本概念是相同的:你需要配置你的构建脚本以包含所有依赖,并创建一个可执行JAR文件。

    36410
    领券