关于maven pom文件的packaging属性

前几天在调试源码运行程序的时候,因为将项目中pom文件的packaging属性用错导致源码包无法引入使用而报Bean注入错误,在此进行总结整理记录。

packagingmavenpom.xml中的一个标签,用于指定maven项目的输出格式,也就是打包类型,使用方式为:

<packaging>pom</packaging>

将鼠标放在packaging标签上,按着ctrl键并点击,可以进入到mavenxsd文件中,里面有对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文件打包成一个文件
  • warweb项目的标准打包格式,用于Java Web项目打包,支持多个web资源文件打包成一个文件
  • earEnterprise应用程序的标准打包格式,支持多个web模块和EJB模块打包成一个文件。
  • pomproject object model,无法生成实际的文件,我的理解是类似一种项目结构格式,也是maven中的一种打包类型。

default="jar" 表示如果在不指定的情况下,默认是jar的打包方式。

一般在项目中用的比较多的是pomwarjar这三种类型,这里重点说明下pomjar类型的区别和各自的作用。

pom

我查了一些资料,对于pom类型的maven项目的描述都差不多,pom项目只是为了聚合工程或者传递依赖用,可以理解成是多个model合并。是单纯一个用来继承的文件,相当于接口类。

jar

很明显这个类型就会把项目打包为一个jar包,内部调用或者是服务就要使用这种打包方式。

所以当要使用一些不属于当前项目的通用功能类时,可以引入这些jar包进行使用。两个没有关联和传递关系的项目用pom是无法进行引入的。

明确packaging属性的一些内容和概念是为了只有源码调试和框架搭建时更好的发现问题调试问题。虽然概念简单但是不清楚其中的含义就很容易犯一些令人摸不扎头脑的错误。细节决定成败。

[SpringBoot][Maven]关于maven pom文件的packaging属性的更多相关文章

  1. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...

  2. Maven 项目依赖 pom 文件模板

    下面是网上down的 pom 文件模板: <!-- 属性 --> <properties> <spring.version>4.2.4.RELEASE</sp ...

  3. Maven入门-3.pom文件和settings文件

    1.pom.xml文件介绍2.settings.xml文件介绍 1.pom.xml文件介绍 Maven项目的核心是pom.xml,pom(Project Object Model项目对象模型) pom ...

  4. 关于maven导入工程pom文件报错问题及解决

    pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报错:Failure to transfer org.apache.maven.shared:maven-filtering:pom:1 ...

  5. maven导出工程pom文件中依赖的jar包

    在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...

  6. intellij中maven不能导入pom文件中指定的jar包

    pom文件配置依赖的jar包版本,可以有默认的版本,如下 <profiles> <profile> <id>default_version</id> & ...

  7. Maven项目中在properties 中使用 ${} 来引用pom文件中的属性

    比如在pom文件中定义了属性如下: <jdbc.host.global>127.0.0.1</jdbc.host.global> <jdbc.databasename.g ...

  8. springBoot 2.1.5 pom 文件 unknown 错误

    插件不兼容 pom文件添加 <properties>    <maven-jar-plugin.version>2.6</maven-jar-plugin.version ...

  9. 什么是maven?maven中的pom文件是做什么的?

    Maven 是专门用于构建和管理Java相关项目的管理工具. 1.使用Maven管理的Java 项目都有着相同的项目结构 2.统一维护jar包 POM是项目对象模型(Project Object Mo ...

  10. 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就可以了. 二:如果第一种 ...

随机推荐

  1. 小白学标准库之 mux

    本文介绍第三方库 gorilla/mux,相比于 Go 自带的 net/http 它能提供更为强大的路由处理功能. mux 表示 HTTP request multiplexer (HTTP 请求多路 ...

  2. mysql-数值函数-取整-保留小数位-求余数

  3. [转帖]nginx 日志打印响应时间 request_time 和 upstream_response_time

    https://www.cnblogs.com/chooperman/p/14722450.html 设置log_format,添加request_time,$upstream_response_ti ...

  4. [转帖]学习如何编写 Shell 脚本(进阶篇)

    https://juejin.cn/post/6935365727205457928 前言 在<学习如何编写 Shell 脚本(基础篇)>一文中已经讲解了 Shell 脚本编程的基础知识, ...

  5. [转帖]12.24.2 DECIMAL Data Type Characteristics

    https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html This section discusses the characteri ...

  6. 人大金仓学习之四-kmonitor

    人大金仓学习之四-kmonitor 背景 kmonitor 其实时一个很好的工具和思路 开元的软件封装一下, 减轻技术复杂度,提高部署效率 并且能够更加快速的定位解决问题. 能够极大的提升客户体验. ...

  7. [转帖]Jmeter学习笔记(十)——元件的作用域和执行顺序

    https://www.cnblogs.com/pachongshangdexuebi/p/11582891.html jmeter是一个开源的性能测试工具,它可以通过鼠标拖拽来随意改变元件之间的顺序 ...

  8. 【转帖】nginx变量使用方法详解-7

    https://www.diewufeiyang.com/post/581.html   在 (一) 中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的 ...

  9. [转帖]Ipmitool跟OS下的ipmi模块之间的关系

    https://www.jianshu.com/p/71614d3288e8 OS下默认加载了ipmi的相关模块 注:此时OS下可以正常使用ipmitool命令访问本机的ipmi 设备. [root@ ...

  10. [转帖] Strace的介绍与使用

    https://www.cnblogs.com/skandbug/p/16264609.html Strace简介 strace命令是一个集诊断.调试.统计于一体的工具,常用来跟踪进程执行时的系统调用 ...