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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java string转inputstream(substring截取字符串)

    Apachecommons是一个强大的Java辅助工具包。它提供的IOUtils可以让我们很便捷的实现InputStream转换为String。StringWriterwriter=newStringWriter();IOUtils.copy(inputStream,writer,encoding);StringtheString=writer.toString();首先把in…

    2022年4月16日
    123
  • sklearn linear regression_auto sklearn

    sklearn linear regression_auto sklearnK折交叉验证:sklearn.model_selection.KFold(n_splits=3,shuffle=False,random_state=None)思路:将训练/测试数据集划分n_splits个互斥子集,每次用其中一个子集当作验证集,剩下的n_splits-1个作为训练集,进行n_splits训练和测试,得到n_splits个结果注意点:对于不能均等份的数据集,其前n_sa

    2022年9月20日
    2
  • JS中clientHeight、scrollHeight和offsetHeight的大坑,滚动条抖动问题解决

    JS中clientHeight、scrollHeight和offsetHeight的大坑,滚动条抖动问题解决JS中clientHeight、scrollHeight和offsetHeight的大坑,滚动条抖动问题解决1.什么是clientHeight、scrollHeight和offsetHeight1.1clientHeight是什么1.2offsetHeight是什么1.3clientHeight和offsetHeight的注意点1.4scrollHeight和它的大坑jQuery和原生js…

    2022年7月24日
    14
  • 【小制作】WIFI智能窗帘的制作[通俗易懂]

    【小制作】WIFI智能窗帘的制作[通俗易懂]自从之前做了个智能插排后,近期事忙,也就没时间搞新东西(其实是懒),最近老婆说要装个窗帘,突发奇想,要不装个智能窗帘算了,上某宝搜了一下,这玩意还挺贵,后来想想,算了,不如自己开发一个算了,顺便练练手,以后连上我之前开发的控制端,还可以统一控制。

    2022年6月23日
    58
  • python写txt方法_怎么实现python写入txt文件方法

    python写txt方法_怎么实现python写入txt文件方法一、读写txt文件1、打开txt文件1file_handle=open(‘1.txt’,mode=’w’)上述函数参数有(1.文件名,mode模式)mode模式有以下几种:1234#w只能操作写入r只能读取a向文件追加#w+可读可写r+可读可写a+可读可追加#wb+写入进制数据#w模式打开文件,如果而文件中有数据,再次写入内容,会把原来的覆盖掉2、向文件写入数据第一种写入方式:12…

    2022年10月2日
    1
  • NTU NUS 申请经历

    NTU NUS 申请经历我的出国历程                ——考研+出国全纪录个人简历:本人,男,1989年出生,东北大学秦皇岛分校06级通信工程专业学生。在校期间曾获得校一等奖学金1次,二等奖学金2次,三等奖学金2次,科技创新奖学金1次,鹏远奖学金1次。曾获得校“东软杯”科技竞赛特等奖,“挑战杯”课外学术作品竞赛省三等奖,并参加过全国大学生数学建模比赛。在校期间多次获得康师傅“再来一瓶”奖励。

    2022年5月3日
    59

发表回复

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

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