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

使用Maven,我如何构建一个包含我的项目jar和所有依赖jar的distributable?

您好!您想要了解如何使用Maven构建一个包含您的项目jar和所有依赖jar的可分发文件。以下是一个简单的步骤说明:

  1. 首先,确保您已经安装了Maven。如果没有,请访问Maven官方网站下载并安装。
  2. 在您的项目根目录下,找到pom.xml文件。这是Maven的配置文件,其中包含了项目的基本信息和依赖关系。
  3. 打开pom.xml文件,并在其中添加以下插件:
代码语言:xml<build>
复制
   <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-assembly-plugin</artifactId>
           <version>3.3.0</version>
           <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
               <archive>
                   <manifest>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
               <execution>
                    <id>make-assembly</id>
                   <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

请注意,您需要将<mainClass>标签中的值更改为您的实际主类名称。

  1. 保存pom.xml文件并关闭。
  2. 打开终端或命令提示符,导航到项目根目录,并运行以下命令:
代码语言:txt
复制
mvn clean package

Maven将会编译您的项目,并将所有依赖项打包到一个可分发的jar文件中。该文件将在target目录下生成,并带有-jar-with-dependencies.jar的后缀。

希望这些信息能够帮助您解决问题!如果您有任何其他问题,请随时提问。

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

相关·内容

Maven学习】Maven打包生成包含所有依赖jar

大家好,又见面了,是你们朋友全栈君。 maven打包生成普通jar包,只包含该工程下源码编译结果,不包含依赖内容。...同时,maven提供以下方式生成包含所有依赖jar文件,依赖以class方式存在; 将此plugin添加到pom文件中 ...,这时候就要把最新版本号添加进去即可, 2.在当前项目下执行mvn assembly:assembly, 执行成功后会在target文件夹下多出一个以-jar-with-dependencies结尾...这个JAR包就包含项目依赖所有JARCLASS. 3.如果不希望依赖JAR包变成CLASS的话,可以修改ASSEMBLY插件....\2.4 用WINZIP或解压工具打开此目录下maven-assembly-plugin-2.4.jar, 找到assemblies\jar-with-dependencies.xml 把里面的UNPACK

1.3K20

Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖jar

大家好,又见面了,是你们朋友全栈君。...使用maven构建工具可以将工程打包生成普通jar包、可运行jar包,也可以将所有依赖一起打包生成jar; 一、普通jar包 普通jar包只包含工程源码编译出class文件以及资源文件,而不包含任何依赖...二、包含所有依赖jar包 普通jar包,只在pom文件中包含依赖信息,而不包含真正依赖,但同时maven也可以打包生成包含所有依赖jar文件,可参考本博客文章 Maven打包生成包含所有依赖...jar包 三、可运行jar包 可运行jar包,除包含工程源码编译结果外,还包括所有依赖,可利用java -jar 命令直接运行。...(所有依赖jar包直接变成了class) 使用maven生成可运行jar包,可参考本博客文章 maven打包生成可执行jar文件。

3.5K20

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

IntelliJ IDEA使用教程 (总目录篇) Maven 组件界面介绍 如上图标注 1 所示,为常用 Maven 工具栏,其中最常用有: 第一个按钮:Reimport All Maven...第六个按钮:Execute Maven Goal 弹出可执行 Maven 命令输入框。有些情况下我们需要通过书写某些执行命令来构建项目,就可以通过此按钮。...如上图标注 5 所示,为常见 Java Web 在 Maven一个项目结构。 大致了解过后,看怎么查看所有jar依赖关系。 2017.2.6版本之后,这个图标的样子变啦。...点完之后就会有下图 可以看到,这个maven项目所有jar依赖关系,一览无余。 为什么这个jar依赖这么少呢,因为这个项目只是简单示范了一下springmvc框架使用。...所以,也没有引入过多jar包,要是在一个大一点项目里面,你使用定时任务了,使用poi了使用等等一些其他工具类包,那么就会很多了。 下面说一些小技巧 自动适配这个页面的大小。

11K40

dubbo扩展jar如何无侵入给别人使用

有这么一个场景, 写了一个dubbo spi扩展jar包 dubbo-ext.jar; 这个Jar包是不可执行包(没有main函数), 它作用是对现有运行dubbo服务做一些增强; 那么这样一个扩展包.... java -jar 启动方式 我们现在大部分项目都会选择SpringBoot框架; 最常用打包方式是打成 jar 包;然后使用javar -jar XXX.jar 启动方式; 但是这样的话,...-0.0.1-SNAPSHOT; 解压出来是下面的; 所有依赖jar都在BOOT-INF/lib 中; ?...不然就算加载成功了,路径不对,也使用不了 ! 如果目标文件是一个war包呢 同理~; war包解压看看; ? 把路径改成 WEB-INF/lib 就行了!! 如果是一个zip包呢?...参考文章 springBoot项目不重新上传jar包,增量升级步骤 更新spring boot jar包中BOOT-INF/lib目录下jar

96730

maven-assembly-plugin插件使用方法

中文翻译:Assembly 插件主要作用是,允许用户将项目输出与它依赖项、模块、站点文档、其他文件一起组装成一个可分发归档文件。...(翻译不一定准确,以英文为准) 四.maven-assembly-plugin插件在maven项目如何使用(即使用步骤)?   1.  需要指定一个Assembly描述符文件。...序号 取值 意义 1 compile 缺省值,适用于所有阶段,会随着项目一起发布 2 provided 类似compile,期望JDK、容器或使用者会提供这个依赖。...如servlet.jar 3 runtime 只在运行时使用,如JDBC驱动,适用运行测试阶段 4 test 只在测试时使用,用于编译运行测试代码。...不会随项目发布 5 system 类似provided,需要显式提供包含依赖jarMaven不会在Repository中查找它 六. mavenpom.xml配置(引入assembly描述符文件

13.3K20

把自己java库发布到了maven中央仓库,从此可以像Jackson、Springjar一样使用它了

关于maven中央仓库 作为一个java程序员,对maven中央仓库https://mvnrepository.com/自然是非常熟悉,毕竟咱们应用依赖jar大部分都来自此处,如果您想把自己开发...java库也托管在上面,让大家像使用Jackson、Spring那样轻松简单使用jar,就请随本文一起操作吧; 先看看效果,下图是发布java库在中央仓库搜索结果: 前提条件 由于sonatype...在issue上进行回复 打开issuse,增加一个评论,如下图: 不久后(这边是十多分钟),就会收到一条新评论,通知你可以去做发布了,并给你了snapshotrelease发布地址: 5....全局配置 试想把sonatype账号密码写在项目的pom.xml中,再上传到github让所有人都看到?...8. maven项目配置 首先要搞清楚发布仓库地址在哪,官方指导如下,给出了snapshotrelease仓库地址: 以下是java工程pom.xml文件,需重点关注地方都有中文注释,请不要漏掉带序号注释

55730

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

下面我们看看如何在 eclipse 中构建一个可执行 jar 包。...默认Maven生成JAR包只包含了编译生成.class文件项目资源文件,而要得到一个可以直接在命令行通过 java命令运行JAR文件,还要满足两个条件: JAR包中/META-INF...关于项目依赖,它很聪明地将依赖 JAR文件全部解压后,再将得到.class文件连同当前项目的.class文件一起合并到最终CLI包中,这样,在执行CLI JAR文件时候,所有需要类就都在Classpath...Main-Class是com.juvenxu.mavenbook.HelloWorldCli,构建完成后,对应于一个常规 hello-world-1.0.jar文件,还得到了一个hello-world...classpathPrefix:如果您计划在同一目录下包含有您所有依赖项,作为您将构建 JAR,那么您可以忽略它;否则使用  classpathPrefix 来指定所有依赖 JAR 文件前缀。

3.8K50

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

jar 为了帮助所有Maven用户更方便使用Maven中央库中海量资源,中央仓库维护者强制要求开源项目提交构件时候同时提供源码包Javadoc包。...上述例子中Main-Class是com.juvenxu.mavenbook.HelloWorldCli,构建完成后,对应于一个常规hello-world-1.0.jar文件,还得到了一个hello-world...我们希望最终生成一个zip格式分发包,它包含如下一个结构: bin/ lib/ README.txt 其中bin/目录包含了可执行脚本run.shrun.bat,lib/目录包含项目JAR所有依赖...(假设artifactId为hello-world,version为1.0) dependencySets用来定义选择依赖并定义最终打包到什么目录,这里我们声明一个depenencySet默认包含所有所有依赖...小结 打包是项目构建最重要组成部分之一,本文介绍了主流Maven打包技巧,包括默认打包方式原理、如何制作源码包Javadoc包、如何制作命令行可运行CLI包、以及进一步如何基于个性化需求自定义打包格式

2.1K20

【Spring Boot系列】构建一个SpringBoot应用程序

我们可以使用项目管理工具(如 maven 或 gradle)来创建我们应用程序,在这篇博客中,使用 Maven 作为依赖项管理器。...一、构建那么如何开始,下面有几个选项:使用 mvn 原型创建新 spring boot 应用程序。它可以是一个简单基于 maven 项目。...选择从网站 start.spring.io 创建一个项目,下面是它外观截图正如我们截图中看到构建工程有多种选项。在左侧,我们可以使用 Maven 或 Gradle 作为构建工具。...这个父 pom 包含所有构建插件,因此当我们执行一个简单 mvn 包命令时,我们会得到一个可运行 jar。它包含许多有关配置属性其他内容配置。...Spring Boot 应用程序会生成一个可运行 jar,其中包含所有依赖项,可以直接运行。

13310

Maven 扫盲(下)

Model) 一个项目所有的配置都放置在 POM 文件中:定义项目的类型、名字,管理依赖关系,定制插件行为等等。...在这种情况下,每个子项目就会有自己 POM 文件,然后它们会有一个共同项目。这样只要构建项目就能够构建所有的子项目了。子项目的 POM 会继承父项目的 POM。...从看名字就能知道,Jar 插件包含建立Jar文件目标, Compiler 插件包含编译源代码单元测试代码目标。Surefire 插件的话,则是运行单元测试。...生命周期指项目构建过程,它包含了一系列有序阶段 (phase),而一个阶段就是构建过程中一个步骤。 那么生命周期阶段上面说插件目标之间是什么关系呢?插件目标可以绑定到生命周期阶段上。...至于在 Eclipse 中如何使用 maven,这个网上很多了,google 一下就行。

43110

Maven 扫盲(下)

Model) 一个项目所有的配置都放置在 POM 文件中:定义项目的类型、名字,管理依赖关系,定制插件行为等等。...在这种情况下,每个子项目就会有自己 POM 文件,然后它们会有一个共同项目。这样只要构建项目就能够构建所有的子项目了。子项目的 POM 会继承父项目的 POM。...从看名字就能知道,Jar 插件包含建立Jar文件目标, Compiler 插件包含编译源代码单元测试代码目标。Surefire 插件的话,则是运行单元测试。...生命周期指项目构建过程,它包含了一系列有序阶段 (phase),而一个阶段就是构建过程中一个步骤。 那么生命周期阶段上面说插件目标之间是什么关系呢?插件目标可以绑定到生命周期阶段上。...至于在 Eclipse 中如何使用 maven,这个网上很多了,google 一下就行。

49820

Maven就是这么简单

什么是Maven Maven一个采用纯Java编写开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目所有项目配置信息都被定义在一个叫做...Maven是一款跨平台项目管理工具,是一个开源项目Maven主要服务于基于Java平台项目构建依赖管理项目信息管理… POM怎么理解呢???...如果我们事先约定好所有项目的目录结构,标准开发过程(编译,测试) , 所有人都遵循这个约定。软件项目的管理就会变得简单很多。比如:如何过马路(红灯停绿灯行),如何开门,关门等。...间接依赖问题 :依赖jar包必须是 compile 范围,假如是test范围,则发布jar包不会包含test范围依赖jar包,依赖关系 test Maven【私有仓库...然而,我们本地仓库常常没有想要jar,而经常去中心仓库下载这就非常浪费时间资源了…因此我们一般都有一个私有仓库… 另外有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程仓库地址

1.2K50

Maven(一)初识Maven

上面两个问题描述,其实都属于项目项目之间依赖问题[A项目使用SSM所有jar,就说A项目依赖SSM],人为手动去解决,很繁琐,也不方便,所以使用maven来帮我们管理。...作为Apache组织中一个颇为成功开源项目Maven主要服务于基于Java平台项目构建依赖管理、项目信息管理。Maven在各类项目中都可以大显身手。  ...Maven就是一个异常强大构建工具,能够帮我们自动化构建过程,从清理,编译,测试,到生成报告,再到打包部署。     ...3)只需要定义一个pom.xml,然后把源码放到默认目录,Maven帮我们处理其他事情  4)使用Maven可以进行项目高度自动化构建依赖管理(这是使用Maven最大好处),仓库管理。...就是在:C:\Users\Shinelon\.m2\repository   一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整所有jar结合,都丢到本地仓库中,然后每次写项目

5K100

Apache Maven 入门篇

Maven一个项目管理构建自动化工具。但是对于我们程序员来说,我们最关心是它项目构建功能。所以这里我们介绍就是怎样用 maven 来满足我们项目的日常需要。...在这种情况下,每个子项目就会有自己 POM 文件,然后它们会有一个共同项目。这样只要构建项目就能够构建所有的子项目了。子项目的 POM 会继承父项目的 POM。...比如说Jar插件,Compiler插件,Surefire插件等。从看名字就能知道,Jar 插件包含建立Jar文件目标, Compiler 插件包含编译源代码单元测试代码目标。...生命周期指项目构建过程,它包含了一系列有序阶段 (phase),而一个阶段就是构建过程中一个步骤。 那么生命周期阶段上面说插件目标之间是什么关系呢?插件目标可以绑定到生命周期阶段上。...至于在 Eclipse 中如何使用 maven,这个网上很多了,google 一下就行。

749100

Maven

乍一看,Maven看起来很多东西,但简而言之,Maven试图将模式应用于项目构建基础架构,以便通过提供使用最佳实践明确路径来提高理解力生产力。...Maven本质上是一个项目管理理解工具,因此提供了一种帮助管理方法: 构建 文档 报告 依赖 供应链管理系统 发布 分配 2.Maven哲学        ...同样想法扩展到测试,生成文档,生成指标报告,测试部署。所有项目都具有足够相同特征,了解Maven试图利用其一般项目管理方法。在很高层面上,所有项目都需要构建,测试,打包,记录部署。...但首先知道想: 项目的模型,以便您可以在一个地方查找与项目相关所有内容 一个标准目录结构,所以你不必去寻找图书馆,资源和文档 其实上面的都是官方语言,对这种理解能力不强的人其实举例子更合适...上面两个问题描述,其实都属于项目项目之间依赖问题[A项目使用SSH所有jar,就说A项目依赖SSH],人为手动去解决,很繁琐,也不方便,所以使用maven来帮我们管理

98820

Java接口自动化之Maven工具使用

形式出现jar 包之间会有关联,在使用一个依赖之前,还需要确定这个依赖依赖其他依赖,所以,当项目比较大时候,依赖管理会变得非常麻烦臃肿,这是 Maven 解决一个问题。...它也可以将其发布到分发位置供其他项目使用Maven 能够发布单独输出,如 JAR包含其他依赖和文档归档,或者作为源代码发布。...子项目使用项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号, 并行构建 :编译速度能普遍提高20 - 50 %。...在Maven术语中,仓库是一个位置(place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他工程指定文件。 2 为什么使用maven仓库?...Maven本地仓库保存你工程所有依赖(library jar、plugin jar 等)。当你运行一次 Maven 构建Maven会自动下载所有依赖 jar 文件到本地仓库中。

95620

maven是什么(上)

一.简介 Maven一个Java项目管理工具,主要功能是统一开发规范与包依赖管理。Maven项目对象模型(POM),可以通过一小段描述信息来管理项目构建、测试、报告等。...当某些jar包有依赖时候,还要去下载对应依赖jar包 当jar依赖有冲突时,不得不一个一个排查 执行构建时,需要使用ant写出很多重复任务代码 当新人加入开发时,需要拷贝大量jar包,然后重复进行构建...,比如用SSH框架,那么我们就必须将SSH框架所用几十个依赖jar包依次找出来并手动导入到本地文件夹,才能在代码项目里去依赖使用它,超级繁琐。...这个时候,有个超市,卖一个红烧排骨一个包,把这些材料打包好,放在橱柜里卖。你要做就是: 去超市 买这个红烧排骨包,里面包含了小排所有要用到材料。 然后,你就可以开始烧红烧小排了。...lib目录: 该目录包含所有Maven运行时需要Java类库,Maven本身是分模块开发,因此用户能看到诸如maven-core-3.0.jarmaven-model-3.0.jar之类文件,

66710
领券