Maven随机不会过滤资源

 天涯使者2602921991 发布于 2023-02-12 19:49

这有点令人发狂,我在Maven工作几年之前从未见过它.一个简单的项目(我自己没有写过)会随机地过滤资源,我无法弄清楚可能导致它的原因.我不能分享项目源代码,但我会尝试尽可能多地分享POM.请记住,问题不在于代码,而是Maven随机决定不过滤资源.

我最初在我的POM的构建标记中配置了这个:


  
    src/main/resources
    true
  

在我的src/main/resources目录中,我有一个名为spring-config.xml的文件.此文件中有几个属性,应由Maven配置文件属性替换.我已经配置了我的构建配置文件:


  stage
  
    STAGE
    jdbc:oracle:thin:@xxx.xxx.com:1521:xxx
  

要构建,我运行此命令:

mvn clean package -P stage

现在,这个项目使用Spring,它使用相同的Spring配置进行测试和执行,因此上下文将在运行测试用例时创建数据库连接.大多数情况下,构建将完成,测试用例将通过.但是,在10中大约有1次,测试用例将失败,因为属性没有被替换,Spring尝试连接到"$ {db.url}"而不是"jdbc:oracle:thin:@ xxx.xxx.com:1521 :XXX".

奇怪的是,尽管刚刚通过测试案例,但打包的JAR在10中大约有9次会遇到同样的问题.我检查了目标/ classes目录,那里的文件有完全相同的问题.我认为在构建生命周期的某个点上使用Maven资源插件会发生奇怪的事情,也许它会错误地覆盖文件.

我的绑带解决方案

在Maven生命周期中,顺序是compile-> test-> package.因此,为了在令我头疼的两个阶段上强制过滤资源,我将资源插件配置为在编译阶段和测试阶段运行:

  
    org.apache.maven.plugins
    maven-resources-plugin
    2.6
    
      UTF-8
    
    
      
        this-is-silly
        compile
        
          resources
        
      
      
        why-must-i-exist
        test
        
          resources
        
      
    
  

这似乎是一贯的工作,但我仍然没有任何世俗的想法,为什么我需要在过去几年中为数十个项目中的一个项目做这个.我以前从未见过Maven间歇性地做某事,这让我担心它会再次破裂.任何想法将不胜感激.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有