java maven项目 引用了spring-framework-bom 为啥下面的jar包还需要写版本号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java maven项目 引用了spring-framework-bom 为啥下面的jar包还需要写版本号?相关的知识,希望对你有一定的参考价值。

我引用了<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>4.3.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>依赖 来管理jar包 下面的引用的spring 为什么还需要写版本号

参考技术A 当然要写版本号,每个版本的jar都不一样,拿jdk来说吧,jdk6和jdk8就有区别,jdk8增加了好多jdk没有的特性,版本越高,其里面的东西就会有改动的 参考技术B spring-framework-bom是当做maven的parent来用的,如果你只是当做dependency用,那么它就是一个普通的依赖,无法控制其他依赖版本。
但是你把它当做你的maven parent项目,那么parent的依赖版本则可以当做子项目(当前项目)的版本管理器来使用,在你不指定子项目的dependency的版本号的情况下,子项目就会去parent中找是否有dependencyManagement,且有定义依赖的版本号,如果有,则沿用。
最简单的对比就是springboot项目都会设置parent为spring-boot-starter-parent,两者都是使用maven的parent+dependencyManagement特性来统一管理依赖版本,减少依赖冲突的发生

java中的maven是干啥的?

Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。例如:项目开发中第三方jar引用的问题,开发过程中合作成员引用的jar版本可能不同,还有可能重复引用相同jar的不同版本,使用maven关联jar就可以配置引用jar的版本,避免冲突。

你给出的图片中binary是二进制文件,source是源码,开发中我们需要下载的是binary文件,后缀标识压缩的算法. 一般来说,windows系统用zip较多,linux系统用tar.gz较多。source是maven项目的源码,探究原理时可以下载源码进行研究。

扩展资料

Maven常用命令:

1.mvn archetype:generate 创建Maven项目

2.mvn compile 编译源代码

3.mvn deploy 发布项目

4.mvn test-compile 编译测试源代码

5.mvn test 运行应用程序中的单元测试

6.mvn site 生成项目相关信息的网站

7.mvn clean 清除项目目录中的生成结果

8.mvn package 根据项目生成的jar

9.mvn install 在本地Repository中安装jar

10.mvn eclipse:eclipse 生成eclipse项目文件

参考资料:百度百科-Maven

参考技术A maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
下面将进行简要介绍:

1.安装
Maven是一个Java工具,所以你必须安装Java环境。首先,下载Maven并解压到你选择的安装目录,例如在windows下的C:\maven,或者Linux下的/usr/local/maven。然后添加系统变量$M2_HOME和M2_HOME/bin到你的系统路径。在终端或者命令提示里输入以下指令:
mvn --version
这应该打印你安装的Maven的版本,例如:
Maven version: 2.0.10
Java version: 1.6.0_12
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

2 下载所需插件
然后,在终端或者命令提示里输入以下指令:
mvn
这时,系统会下载maven运行所需的.jar文件到自动生成的默认路径为
C:\Documents and Settings\Administrator\.m2\repository的文件夹中。
这个过程大概需要十几分钟。

3 创建一个项目
在你的命令行执行以下指令:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
你将注意到此命令在当前目录创建了一个名为my-app的目录。
src/main/java目录包含项目源代码,src/test/java目录包含测试代码,而pom.xml为项目的Project Object Model,或者POM。

4 配置eclipse的classpath
eclipse需要知道Maven的本地仓库的路径。所以,类路径变量M2_REPO必须设置。在eclipse内定义一个新的classpath变量:从菜单条,选择Window>Preferences,选择java>Build Path>Classpath>Variables中添加名为MAVEN_REPO的变量,指向C:\Documents and Settings\Administrator\.m2\repository。如果想让eclipse支持直接运行maven的goal,可以安装mavenide插件。

5 如果你有一个单模块的简单java项目,使用eclipse将十分简单。为了从你的POM产生eclipse项目文件,执行以下命令:
cd my-app
mvn eclipse:eclipse
如果你已经使用eclipse创建或者检出了项目,你只需在workspace中刷新项目。否则,你必须将项目导入eclipse工作空间(从菜单条选择File>Import>Existing Projects into Workspace)。
参考技术B Maven是用Jelly作为自己的脚本语言,因此在编写自己的Goal时,需要了解一些Jelly的基本知识.

在Maven中,还有一些配置文件,如:project.xml,maven.xml,project.properties等.project.xml是项目的主配置文件,没有该文件Maven是不能执行的.文件中包含的属性,元素可以参考它的xsd文件.

一般在make java app时,都会应用很多其它的jar文件,在Maven中它提供了Repository,在这里它存有很多的jar文件.当然,在Repository中也存有Maven执行的一些类库文件.

如果,你第一次运行Maven时,它会从网上的Repository下载需要的类库.如果此时,网络是断的,就不行了.

运行Maven的site:generate,可以生成一个关于项目信息和项目报告的网站,所有的页面都是html格式的.其中,包含非常丰富的项目信息:项目组成员,邮件列表,单元测试,javadoc等等.这样,就可以让人能大致把握住项目的概括.
参考技术C maven是一个项目自动化构建和管理的工具,提供了帮助管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库 参考技术D maven是代码的管理工具,编译、发布、部署等,支持插件

相关参考: http://wenku.baidu.com/view/6ddc67140b4e767f5acfce91.html本回答被提问者采纳

以上是关于java maven项目 引用了spring-framework-bom 为啥下面的jar包还需要写版本号?的主要内容,如果未能解决你的问题,请参考以下文章

Github Java Maven Actions 持续集成 POM 是在引用自己

转:如何将 Java 项目转换成 Maven 项目

java创建一个maven web的项目,为啥只有src文件夹和pom.xml文件??

maven引用遗留项目的jar文件:上传任意一个jar 包到maven 仓库

使用Eclipse + Maven 构建Java Web 项目

Java:听说maven比ant方便多了?有多方便,能给我个大致的印象么