Maven 打包命令遇到的坑

Maven 打包命令遇到的坑今天做定时任务的时候发现定时任务程序中的resources文件夹下面没有被打进去,导致部署在测试环境启动读取不到配置文件,本以为是框架的问题,原来是自己的问题。根据大神对打包的反编译才发现resouces里面的namespace配置根本没有被打包进去。自以为是的是打包进去了,浪费了一定的时间。那idea下的maven命令为什么是这样呢Cleancompileinstallpac

大家好,又见面了,我是你们的朋友全栈君。

今天做定时任务的时候发现定时任务程序中的resources文件夹下面没有被打进去,导致部署在测试环境启动读取不到配置文件,本以为是框架的问题,原来是自己的问题。
根据大神对打包的反编译才发现resouces里面的namespace配置根本没有被打包进去。自以为是的是打包进去了,浪费了一定的时间。那idea下的maven命令为什么是这样呢
Clean compile install package…..
在我原来自己写的一个用于测试的定时程序是maven的Java web程序带有webapp的文件,这时候打包会将resources里也打包进去,由于定时任务程序的maven pom里有

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <descriptor>src/main/assembly/assembly.xml</descriptor><!-- 描述文件所在的路径 -->
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id><!-- 随便起一个名字 -->
      <phase>package</phase><!-- 绑定到package生命周期阶段 -->
      <goals>
        <goal>single</goal><!-- 只执行一次 -->
      </goals>
    </execution>
  </executions>
</plugin>

插件,打包出来的tar.gz文件里面含有resources文件下的内容。
但是用于真正部署跑定时程序的代码是maven Java 程序,也就是说不是Java web程序,当使用打包命令的时候不会把maven Java程序的resources目录里的内容打包进去,虽然在idea里运行的时候可以正确读取配置文件,正常跑程序。但是打包到线上的程序包里没有配置,因而就报错了。

这里写图片描述

如图Java web项目里的resources文件夹里的内容是除了lib的那两个文件,而lib里面则是打包好的jar包。如果是Java程序则不会包含META-INF,log4j2.xml文件。
建议:如果是需要读取配置文件的项目,建议创建项目的时候使用maven Java web的方式创建项目骨架。否则打包的时候可能遗漏配置文件导致测试,正式部署的时候报错。
那么我是怎么解决的呢,就是将配置文件放在与lib同级的目录下,完了放到线上测试,或者正式机上跑。前提是程序会自动从项目根目录去找配置项。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134531.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 出现将截断字符串或二进制数据怎么办_数据库从字符串转换日期失败

    出现将截断字符串或二进制数据怎么办_数据库从字符串转换日期失败原因是因为在数据库的表中进行了输入字符长度的限制,比如数据库表中的字段长度为5个varchar,而在前台的输入中超出了这个长度就会报这个错。出现此错的原因一般时:在进行数据测试时没有考虑数据的长度,只顾着测试方便乱输一通,稍有不慎就会多出一两个字节(我就是这种情况,在数据库中有一个表示状态的字段,是一个长度的int,但是我输入了双数)解决办法当然简单:只需要更改数据库中的字段长度或者在前台测试输…

    2022年10月7日
    0
  • VS找不到约束

    VS找不到约束

    2022年1月13日
    46
  • 数据库的左右连接和内连接_数据库各种连接的区别

    数据库的左右连接和内连接_数据库各种连接的区别原英文文章链接:https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins准备表A:–auto-generateddefinitionCREATETABLEtable_a(PKINT(10)NOTNULLPRIMARYKEY,Va…

    2022年9月19日
    0
  • Python的for循环_python中的while语句

    Python的for循环_python中的while语句for循环和while循环有什么区别?众做周知,循环是Python中最基础也是最常见的知识点之一,下面我们来一起好好学习一下for循环和while循环,并对比分析两者的使用区别,帮助Python初学者可以更好地掌握两者的内容和应用,下面一起来看看吧~1、for循环(1)概念for循环可以遍历任何序列的项目,比如字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。(2)代码示例:终端…

    2022年8月12日
    4
  • vgg网络论文_dna结构综述论文

    vgg网络论文_dna结构综述论文原文地址:https://arxiv.org/pdf/1409.1556.pdfVGG简介:VGG卷积神经网络是牛津大学在2014年提出来的模型。当这个模型被提出时,由于它的简洁性和实用性,马上成为了当时最流行的卷积神经网络模型。它在图像分类和目标检测任务中都表现出非常好的结果。在2014年的ILSVRC比赛中,VGG在Top-5中取得了92.3%的正确率。同年的冠军是googl…

    2022年10月21日
    0
  • Android P 新特性抢先看[通俗易懂]

          上周的世界移动通信大会上,我们看到了安卓开发者,设备生产者和芯片合作者组成的安卓生态系统不断的给用户代码惊喜的体验。      新特性下面就来看看AndroidP第一个预览版的一些很酷的特性。      1,Wi-Fi室内定位      精确的室内定位一直以来都是一个挑战,它给lbs创造了新的机遇。AndroidP支持了IEEE802.11mcWi-Fi协议,…

    2022年4月14日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号