[SpringBoot][Maven]关于maven pom文件的packaging属性
关于maven pom文件的packaging属性
前几天在调试源码运行程序的时候,因为将项目中pom文件的packaging属性用错导致源码包无法引入使用而报Bean注入错误,在此进行总结整理记录。
packaging是maven的pom.xml中的一个标签,用于指定maven项目的输出格式,也就是打包类型,使用方式为:
<packaging>pom</packaging>
将鼠标放在packaging标签上,按着ctrl键并点击,可以进入到maven的xsd文件中,里面有对packaing标签的描述说明。
<xs:element name="packaging" minOccurs="0" type="xs:string" default="jar">
<xs:annotation>
<xs:documentation source="version">4.0.0</xs:documentation>
<xs:documentation source="description">
The type of artifact this project produces, for example <code>jar</code>
<code>war</code>
<code>ear</code>
<code>pom</code>.
Plugins can create their own packaging, and
therefore their own packaging types,
so this list does not contain all possible types.
</xs:documentation>
</xs:annotation>
</xs:element>
可以看到packaging标签一共有这么几种打包类型:
jar:标准打包格式,支持多个Java文件打包成一个文件war:web项目的标准打包格式,用于Java Web项目打包,支持多个web资源文件打包成一个文件ear:Enterprise应用程序的标准打包格式,支持多个web模块和EJB模块打包成一个文件。pom:project object model,无法生成实际的文件,我的理解是类似一种项目结构格式,也是maven中的一种打包类型。
default="jar" 表示如果在不指定的情况下,默认是jar的打包方式。
一般在项目中用的比较多的是pom、war、jar这三种类型,这里重点说明下pom和jar类型的区别和各自的作用。
pom
我查了一些资料,对于pom类型的maven项目的描述都差不多,pom项目只是为了聚合工程或者传递依赖用,可以理解成是多个model合并。是单纯一个用来继承的文件,相当于接口类。
jar
很明显这个类型就会把项目打包为一个jar包,内部调用或者是服务就要使用这种打包方式。
所以当要使用一些不属于当前项目的通用功能类时,可以引入这些jar包进行使用。两个没有关联和传递关系的项目用pom是无法进行引入的。
明确packaging属性的一些内容和概念是为了只有源码调试和框架搭建时更好的发现问题调试问题。虽然概念简单但是不清楚其中的含义就很容易犯一些令人摸不扎头脑的错误。细节决定成败。
[SpringBoot][Maven]关于maven pom文件的packaging属性的更多相关文章
- Maven项目中pom文件分析
pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...
- Maven 项目依赖 pom 文件模板
下面是网上down的 pom 文件模板: <!-- 属性 --> <properties> <spring.version>4.2.4.RELEASE</sp ...
- Maven入门-3.pom文件和settings文件
1.pom.xml文件介绍2.settings.xml文件介绍 1.pom.xml文件介绍 Maven项目的核心是pom.xml,pom(Project Object Model项目对象模型) pom ...
- 关于maven导入工程pom文件报错问题及解决
pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报错:Failure to transfer org.apache.maven.shared:maven-filtering:pom:1 ...
- maven导出工程pom文件中依赖的jar包
在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...
- intellij中maven不能导入pom文件中指定的jar包
pom文件配置依赖的jar包版本,可以有默认的版本,如下 <profiles> <profile> <id>default_version</id> & ...
- Maven项目中在properties 中使用 ${} 来引用pom文件中的属性
比如在pom文件中定义了属性如下: <jdbc.host.global>127.0.0.1</jdbc.host.global> <jdbc.databasename.g ...
- springBoot 2.1.5 pom 文件 unknown 错误
插件不兼容 pom文件添加 <properties> <maven-jar-plugin.version>2.6</maven-jar-plugin.version ...
- 什么是maven?maven中的pom文件是做什么的?
Maven 是专门用于构建和管理Java相关项目的管理工具. 1.使用Maven管理的Java 项目都有着相同的项目结构 2.统一维护jar包 POM是项目对象模型(Project Object Mo ...
- eclipse导入maven时,pom文件的project一直报错(Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.)
这里有两种解决办法. 一:右键项目->maven->update project勾选上Force Update of Snapshots/Releases然后ok就可以了. 二:如果第一种 ...
随机推荐
- freeswitch的事件引擎实现分析
概述 freeswitch是由事件驱动的,fs内部有各种事件来标识状态的变化包括呼叫的变化.配置的变化.号码的变化等等. 而一个框架内的事件引擎需要实现哪些基本的功能呢? 让我们来看一下fs的事件引擎 ...
- 搬运 |(有刀🔪慎入)kwdnx、谷雨、更漏与我
本打算把文案投到官微,但官微说文案太长了,只能放删减版: 那就把文案放博客上吧 写于 癸卯年 戊午月 己亥日. 四年前的冬天我们初见,大家都是青涩的未成年人:在少年班团建的喧闹中,谷雨谈论高数竞赛,k ...
- 13个构建RESTful API的最佳实践
前言 Facebook.GitHub.Google和其他许多巨头都需要一种方法来服务和消费数据.在今天的开发环境中,RESTful API仍然是服务和消费数据的最佳选择之一. 但你是否考虑过学习行业标 ...
- Chrome/Edge 设置黑色主题
Chrome chrome://flags/#enable-force-dark Edge edge://flags/#enable-force-dark
- PHPCMS V9安装出现DNS解析失败的解决方法-不支持采集和保存远程图片
目前因为phpcms官网停止解析后,很多人安装phpcms v9出现如下错误: 这是因为检测dns解析的域名是phpcms官网的域名,官网域名停止解析后肯定检测失败.解决方法如下: 打开/ ...
- [转帖]Unicode与utf的前世今生
https://www.cnblogs.com/naodong/p/12742987.html 历史上存在两个独立的尝试创立单一字符集的组织,即 国际标准化组织(ISO)于1984年创建的通用字符集( ...
- [转帖]什么是内存屏障? Why Memory Barriers ?
要了解如何使用memory barrier,最好的方法是明白它为什么存在.CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate queue).这个两 ...
- [转帖]tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
报错: 1 of ORDER BY clause is not in SELECT list, references column 'xxx' which is not in SELECT list ...
- 【转帖】Linux多链路聚合技术
https://www.jianshu.com/p/dd8587ecf54f 一般而言,在单体结构的操作系统中,一块物理磁盘会接在总线设备上,并经由总线分配 PCI-Bus 号,这个时候一个 bus ...
- [转帖]logback:logback和slf4j中的:appender、logger、encoder、layout
(1)appender 1.appender标签是logback配置文件中重要的组件之一.在logback配置文件中使用appender标签进行定义.可 以包含0个或多个appender标签. 2.a ...