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


相关推荐

  • matlab画图颜色属性「建议收藏」

    matlab画图颜色属性「建议收藏」各种颜色属性选项选项意义选项意义’r’红色’m’粉红’g’绿色’c’青色32’b’兰色’w’白色’y’黄色’k’黑色各种线型属性选项选项意义选项意义’-‘实线’–‘虚线’:’点线’-.’点划线各种标记点属性选项选项意义选项意义’.’用点号绘制各数据点’^’用上三角绘制各数据点’+’用’+’号绘制各数据点’v’…

    2022年5月6日
    90
  • SVN服务器创建及使用–以文档文件的管理示例

    SVN服务器创建及使用–以文档文件的管理示例来源:http://blog.csdn.net/kupe87826/article/details/8139908参考:http://baike.baidu.com/view/183128.htmhttp://wenku.baidu.com/view/ed3e3435ee06eff9aef807ff.html

    2022年7月19日
    11
  • cefsharp播放视频_flash播放器手机版

    cefsharp播放视频_flash播放器手机版原生CefSharp组件缺少FlashPlayer,实现内置浏览器功能时,不支持播放flash。若想使用flash播放功能,我们需要在初始化CefSharp组件时,加载flash播放插件,并设置支持flash播放。Chrome浏览器内核的flash插件文件为pepflashplayer.dll,将pepflashplayer.dll文件放在程序运行目录下,加载flash插件的C#代码如下:v…

    2025年11月10日
    6
  • 使用u盘之前需要将其格式化_使用g中的光盘之前需要将其格式化

    使用u盘之前需要将其格式化_使用g中的光盘之前需要将其格式化本人使用一个外置硬盘,结果每次下载东西都需要重新格式化,从网上找了下方法,发现Windows有自动修复的工具,不用每次格式化。1.首先进入运行,保证自己管理员模式,通过"Windows键+

    2022年8月6日
    7
  • ICMP协议

    ICMP协议1、ICMP简介ICMP全名为(INTERNETCONTROLMESSAGEPROTOCOL)网络控制消息协议。ICMP的协议号为1。ICMP报文就像是IP报文的小弟,总顶着IP报文的名头

    2022年7月4日
    27
  • 到底如何区分什么是架构,框架,模式和平台_整体架构是什么意思

    到底如何区分什么是架构,框架,模式和平台_整体架构是什么意思区分什么是架构、框架、模式和平台,一直都感觉这几个词过于抽象和模糊,今天大家来说说到底什么是架构、框架、模式和平台?收集了的一些来自网上各自的定义和区分如下:来自冬眠的蛤蟆概念:设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用、框架是模块级复用、架构是系统级复用、平台是企业应用级复用。

    2022年10月18日
    5

发表回复

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

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