• 记录一次诡异的Maven Profile不生效的问题


    记录一次诡异的Maven Profile不生效的问题

    现象

    maven 打包之后,复制的 profile对应的resource文件总是不正确的。
    即便是加了

    mvn clean package -P test
    

    ,profile每次都是复制了 dev这个profile,很是奇怪。

    诊断

    mvn resource:resource
    

    用该命令,可以快速测试复制resources配置文件是否正确。
    但是target 文件夹内依然是dev的。

    Apache Maven Help Plugin

    mvn help:active-profiles
    

    输出类似:

    profile dev (external)
    

    这我就突然想到,external 是不是外部的,也就是与本项目无关的。

    结果打开 maven的 settings.xml文件,划到下面发现了下面的内容:

        <profile>  
          <id>dev</id>  
          <repositories>    		
              <repository>    
              <id>spring-plugin</id>    
              <name>spring-plugin</name>    
              <url>http://repo.spring.io/plugins-release/</url>    
              <releases>    
                <enabled>true</enabled>    
              </releases>    
              <snapshots>    
                <enabled>false</enabled>    
              </snapshots>    
            </repository> 
    		
          </repositories>    
          <pluginRepositories>		
    	<pluginRepository>    
              <id>spring-plugin</id>    
              <name>spring-plugin</name>    
              <url>http://repo.spring.io/plugins-release/</url>    
              <releases>    
                <enabled>true</enabled>    
              </releases>    
              <snapshots>    
                <enabled>false</enabled>    
              </snapshots>        
            </pluginRepository>    
          </pluginRepositories>       
        </profile> 
    
    ....
         <activeProfiles>
            <activeProfile>dev</activeProfile>
        </activeProfiles>
    
    

    总结

    然后恍然大雾,原来maven用了这么多年,依旧没有彻底弄明白。。这是到处复制maven settings配置,而不清楚或者误解其作用导致的隐患啊。
    这里的profile dev可是全局激活的啊,幸好生产环境的 没有使用maven profile。
    不然 无论怎么写命令,dev永远是激活的。

  • 相关阅读:
    sql面试题
    C#基础(1)
    Java中的冒泡排序(减少比较次数)
    Java中面向对象的分拣存储
    Java中分拣存储的demo
    XML序列化
    C#读取csv文件使用字符串拼接成XML
    Java中HashMap(泛型嵌套)的遍历
    Java 中List 集合索引遍历与迭代器遍历
    java 中的try catch在文件相关操作的使用
  • 原文地址:https://www.cnblogs.com/slankka/p/10092628.html
Copyright © 2020-2023  润新知