首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    使用maven构建工具可以将工程打包生成普通的jar、可运行的jar,也可以将所有依赖一起打包生成jar; 一、普通的jar 普通的jar只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖...;同时还包括pom文件,说明该依赖信息; 在工程pom文件下这样写,可生成普通的jar: jar 或者,不写,因为packaging默认打包类型为jar...二、包含所有依赖的jar 普通的jar,只在pom文件中包含依赖信息,而不包含真正的依赖,但同时maven也可以打包生成包含所有依赖的jar文件,可参考本博客文章 Maven打包生成包含所有依赖的...jar 三、可运行jar 可运行的jar,除包含工程源码编译结果外,还包括所有依赖,可利用java -jar 命令直接运行。...(所有的依赖jar直接变成了class) 使用maven生成可运行jar,可参考本博客文章 maven打包生成可执行jar文件。

    4.6K20

    Maven 依赖

    Maven 解析依赖信息时,首先会到本地仓库中查找依赖的 Jar 对于本地仓库中没有的依赖,就会去中央仓库查找,通过 Maven 坐标来获取 jar ,获取到后会先下载到本地仓库 对于中央仓库中不存在的依赖...,就会显示编译失败 ② 如果依赖的是自己或者团队开发的 Maven 工程,需要先使用 install 命令把被依赖maven 工程的 jar 安装到本地仓库中 ③ 依赖范围,scope 配置就是依赖的范围...compile:默认值,适用于所有阶段(开发、测试、部署、运行),本 jar 会一直存在所有的阶段 2. provided:只在开发、测试阶段使用,目的是不让 Servlet 容器和本地仓库的 jar 冲突...runtime:只在运行时使用,如 JDBC 驱动,适用于运行和测试阶段 4. test:只在测试时使用,用于编译和运行测试代码,不会随项目发布 5. system:类似 provided,需要显式提供包含依赖的...jar,Maven 不会在 Repository 中进行查找

    95010

    Maven 依赖管理

    摘要 作为开发者,我们一直使用 Maven 来作为版本依赖管理工具,不过我们经常会遇到依赖冲突等问题,我们这边文章就来明确一下 Maven 是如何管理依赖与版本的。...: 修改是向后兼容的,一般表示引入了新功能 IncrementalVersion: 修改是向后兼容的,一般用于bug 修复 Maven依赖的选择策略 假设有一个项目P, 它有如下的依赖图: ?...那我们在构建的时候,哪些依赖会包含在构建中呢? 这就涉及到Maven依赖选择策略,Maven 有两条依赖选择规则: 1. 距离根节点最近的依赖会被选择使用 2....我们可以使用 exclude 方式将 Z 1.0 排除出依赖 总结 Maven依赖管理很灵活,但是当有很多的依赖时,很容易会造成依赖选择的不正确。...其实更真实的说法是,Maven 使用的这种依赖选择策略是有问题的,当遇到依赖冲突时,抛出异常由程序员决定选择哪个依赖是更好的选择,Maven 的这种选择依赖的方式运气好一点的在启动或测试时发现,运气不好等到上线甚至埋藏很久才会运行异常

    69720

    maven 项目依赖

    什么是依赖 依赖的作用可以将项目以的方式引用到当前项目中进行使用。 实际上平时引用的jar都看可以看成是一个个子项目被引入到了项目中。...项目引用 也就是把其他的项目当成jar放入仓库中,进行依赖的引用,就跟从网上下载jar到本地一样。 被项目在被引用前必须先 clean install 到仓库中。...project03在pom.xml中添加依赖,这样project01 和 project02 就都被当做依赖打成了jar入进 project03 的 Maven Library 中。...project03 还会自动得到project01、project02中的所引用的jar,这叫依赖传递。 project01 中所包含的:junit,也会被project03续承。...依赖范围 有几种项目类型 compile: 默认 test: 不被传递 system: 本系统 optional:可选依赖 实际开发中,并不是需要的都需要被依赖,有些只需要在本项目中进行依赖,并不需要被外部引用到如测试用到的

    22940

    Maven 依赖管理

    Maven 坐标 3. 依赖冲突 3.1 冲突产生原因 3.2 解决冲突的办法 1....前言 在我们创建使用 Maven 项目的过程中,当需要用到第三方的控件时,都是通过依赖管理来达成,也就是 Maven 项目中必有的 pom.xml 文件。...「由于 jar 依赖的传递性」,如果在一个项目中同时引入了一个依赖的不同版本,就可能导致依赖冲突。...通常我们有两种处理策略: 「Maven 的默认处理策略」: 「最短路径优先」:对于不同路径长度的 jar ,优先选择路径更短的生效。...「移除依赖:用于排除某项依赖依赖」 除开上述策略外,我们也可以手动在 pom.xml 中使用 标签来排除发生冲突的依赖,如下面用于排除 sring-core 冲突的例子:

    87020
    领券