您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】Maven打包环境切换了,但是复制文件失败
不忘初心 2019-04-02 围观() 评论() 点赞() 【JAVA开发】
简介:在Maven工程中,如果涉及到多环境切换,可以指定profile变量来控制,平时也都是这么用的,但是最近朋友的电脑却出现了一个问题,设置了profile不起作用
在Maven工程中,如果涉及到多环境切换,可以指定profile变量来控制,平时也都是这么用的,但是最近朋友的电脑却出现了一个问题,设置了profile不起作用,有一个项目在打包的时候一直都是拷贝第一个配置文件中的内容,就算是指定了其他profile的激活状态也不行,更诡异的地方在于:同一台机器,同一套maven配置,其他项目打包都是正常的,就是这个项目不行。
<profiles>
<profile>
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<package.environment>prod</package.environment>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
如上配置,指定了生产环境生效,开发和测试环境不生效,在我的机器上也是没问题的,打包也正常,但是在朋友的电脑上,不管如何配置,打包时总是会使用dev环境的配置文件,而且改了这个配置之后,idea右侧的Maven工具栏也不会变动:
上图是我的机器中的效果,但是在朋友的电脑中,profiles勾选的永远是dev选项。。。
查了一下资料,看到有人提到说settings.xml指定了全局激活选项,跑去一看,他的配置文件中还真的写了一个默认的值:
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
把这个东西去掉之后,再次改动pom.xml文件中的profile选项,此时,idea右侧的Maven工具栏有变化了,能根据配置的激活项自动勾选,高兴的一批,跟朋友吹牛说问题解决了,结果分分钟打脸,右侧工具栏虽然变了,但是打出来的war包中,配置文件依旧还是dev环境的,也就是说pom.xml中的profile还是没有生效。
无奈之下,甚至删了项目重新导入,都还是不行。后来在一起吃饭的时候,朋友的同事提到了一句,可能是compiler编译工具的问题,当时没太放在心上,但是后来朋友告诉我说,他把版本改了之后,问题真的解决了,让我感到非常不可思议,果断跑去看了一下项目,出问题的项目是一个多包的工程,父工程中配置了一个compiler插件,子工程中也配置了一个compiler插件,版本号确实写得不一样。
父工程:3.3
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
子工程:3.1
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
朋友说他将子工程中的compiler版本号也改为了3.3,之后打包就没有这个问题了。。。
问题虽然解决了,但是还是没太明白为什么,因为项目是同一个,要是有问题,那应该在我的机器上也会有问题,但是偏偏就是只有他的机器上不行。
问题总结如下:
1、settings.xml中的全局配置,指定了默认的激活选项;
2、项目是maven多包工程,父子工程的compiler编译插件版本不一致;
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
- IntelliJ IDEA 2024.2发布之后强推新UI,如何恢复老的经典UI界面
- Uninstall hasn't detected folder of intelli] lDEA installation. Probablyuninstall.exe was moved from the installation folder.
- 公众号CPS变现新宠:微赚淘客查券返利机器人,开启智能省钱赚钱新时代
- 高返利优惠券公众号推荐
- 返利公众号可信吗安全吗?返利机器人哪个佣金高?
- 唯品会购物返利公众号大揭秘:哪些真正好用的返利公众号?
- 饿了么优惠券免费领取:哪些公众号值得推荐?
- 哪些有用可靠的微信公众号能领淘宝优惠券?
- 微信返利最高的微信号推荐——让你的购物更加实惠!
- 微信返利最高的微信号推荐
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们