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


相关推荐

  • vscode 格式化json

    vscode 格式化json安装扩展插件 nbsp json tools nbsp 快捷键 ctrl alt mhttps marketplace visualstudio com items itemName eriklynd json tools

    2025年9月6日
    0
  • 为Nginx开启SSI模块以支持SHTML解析

    为Nginx开启SSI模块以支持SHTML解析

    2021年8月29日
    55
  • ES6 函数的扩展

    ES6 函数的扩展

    2022年4月3日
    39
  • MNIST是什么(plist是什么意思)

    初始的迷茫我想很多菜鸟和我一样,开始零基础学习机器学习,没办法火啊,为了钱大家都是冲呀。估计很多人开始学习ML,就一头雾水,完全不知道在说什么。因为学习模式和学习其他语言完全不同,我们知道学习其他语言的时候,第一个程序就是打印“HelloWorld”。其实机器学习是在某个框架下,使用某种语言,来解决问题。因此对于零基础的菜鸟而言,我们需要先学习好某种语言,可以推荐Python,因为功能强…

    2022年4月17日
    76
  • Java程序员必看的 14 本 Java 书籍![通俗易懂]

    Java程序员必看的 14 本 Java 书籍![通俗易懂]关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书!毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单。在下面这13本书籍中小编还是要建议大家可以先去关注英文原版,毕竟翻译的书籍中都有一定的语法错误。 入门 《HeadFirstJava》作者:KathySierra/…

    2022年7月7日
    118
  • matlab中axis square和axis equal的区别

    matlab中axis square和axis equal的区别原文axissquare/将当前坐标系图形设置为方形。横轴及纵轴比例是1:1axisequal/将横轴纵轴的定标系数设成相同值也就是说axissquare刻度范围不一定一样,但是一定是方形的。axisequal刻度是等长的,但也不一定是方形的。如下程序其他相关:…

    2022年5月2日
    97

发表回复

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

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