首页 > 其他分享 >[SpringBoot][Maven]关于maven pom文件的packaging属性

[SpringBoot][Maven]关于maven pom文件的packaging属性

时间:2023-11-24 13:44:23浏览次数:33  
标签:packaging SpringBoot 文件 jar maven pom 打包

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

标签:packaging,SpringBoot,文件,jar,maven,pom,打包
From: https://www.cnblogs.com/knqiufan/p/17853567.html

相关文章

  • java实现大文件的分片上传与下载(springboot+vue3)
    1.1项目背景对于超大文件上传我们可能遇到以下问题•大文件直接上传,占用过多内存,可能导致内存溢出甚至系统崩溃•受网络环境影响,可能导致传输中断,只能重新传输•传输时间长,用户无法知道传输进度,用户体验不佳1.2项目目标对于上述问题,我们需要对文件做分片传输。分片传输就是......
  • 分享SpringBoot2 仿B站高性能前端+后端项目
    点击下崽:分享SpringBoot2仿B站高性能前端+后端项目  提取码:cj2sSpringBoot2仿B站高性能前端+后端项目在当今的互联网时期,视频分享平台如B站等备受欢送。它们的胜利很大水平上归功于其高性能的前端和后端技术。在本文中,我们将讨论如何运用SpringBoot2框架和相关技术来创立一个相......
  • maven常用标签
    1、依赖排除标签引入项目依赖,不依赖该项目排除的这个依赖<dependency><groupId>com.hu</groupId><artifactId>backend-framework</artifactId><version>1.0-SNAPSHOT</version><!--排除依赖-->......
  • springboot定时任务线程池配置拾遗--利用配置类进行配置
    springboot定时任务线程池配置拾遗--利用配置类进行配置目录springboot定时任务线程池配置拾遗--利用配置类进行配置1springboot自动装配1.1通过TaskSchedulingProperties获取yaml参数1.2TaskSchedulingAutoConfiguration自动配置类根据TaskSchedulingProperties的配置装配线......
  • springboot 集成swagger3.0 并开启权限认证
    1.POM文件只需要引入一个依赖即可  2.swagger配置文件如下注意:要添加“@EnableWebMvc"注解,详细代码如下:@Configuration@EnableWebMvcpublicclassSwaggerConfig{@Value("${swagger.enabled}")booleanenabled;@BeanpublicDocketdocket(){r......
  • Springboot文件上传代码笔记
    1.在src下创建filter包,包内Class名UploadFilterpackagecom.gd.filter;importorg.apache.catalina.servlet4preview.http.HttpServletRequest;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjavax.servlet.http.HttpServletResponse;impor......
  • Springboot 自动发送邮件
      完成Springboot配置发件邮箱,自动给其他邮箱发送邮件功能一、创建springboot基础项目,引入依赖<!--SpringBoot邮件依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency&g......
  • spring和springboot定时任务线程池配置
    spring和springboot定时任务线程池配置目录spring和springboot定时任务线程池配置1背景2配置2.1命名空间配置2.2yaml配置3参考文档1背景项目有几个新增的月末报表生成定时任务(使用spring内置的TaskScheduler),相关业务人员反馈报表没有及时生成,让我比较疑惑:虽然生成比较耗......
  • java 实现文件夹上传(springBoot 框架)
    java实现文件夹上传(springBoot框架)有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功能,具体操作步骤如下一、前端如何设置上传组件并将资源上传到后台服务这......
  • 使用jasypt对springboot配置信息加密
    1.pom文件增加依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency>2.修改启动......