Maven pom.xml <packaging>pom</packaging> 引发的问题


Maven pom.xml pom 引发的问题

  • 有一个项目在别人那运行的非常好;
  • 有一天, 我开开心心的把这个项目作为一个新 module 导入到了当前的工程中;
  • 然后启动项目, 发现启动端口和我指定的没有任何关联;
  • 我以为出了啥奇怪问题, 于是我重启了一下; 然而, 并没有任何改变;
  • 难道是默认的 profile 没生效, 我在idea Program arguments 里指定了 --spring.profiles.actove=dev;
  • 日志输出显示当前激活的profile 是dev了, 但是端口依然是默认的8080, 和我指定的没有任何关联;
  • 再次我在 VM options 指定 -Dspring.profiles.actove=dev, 然而端口依然是默认的8080, 和我指定的没有任何关联;
  • 我注意到 target 下没有我的配置文件:

在这里插入图片描述

  • 下意识里我想到了pom.xml 里的一些配置:
<build>
	
	...
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<includes>
				<include>*.yml</include>
				<include>**/*.yml</include>
			</includes>
			<!--
			<excludes>
			   <exclude>**/*.properties</exclude>
			   <exclude>**/*.yml</exclude>
				<exclude>*.properties</exclude>
				<exclude>*.conf</exclude>
				<exclude>*.yml</exclude>
				<exclude>generator/*.*</exclude>
			</excludes>
			-->
		</resource>
	</resources>
	...
</build>
  • 这些配置加上后, maven 刷新, 重启项目, 问题依旧存在;
  • 我注意到右侧, Maven Project -> Plugins 里边少了 resources 这个插件正是往编译目录下复制配置文件的, 没有它, 上边的配置加了=没加;

在这里插入图片描述

  • 所以我以为是项目导入的问题;
  • 于是我把 idea 中的这个Module 删了, .iml 文件也删了;
  • 重新导入; idea 检测到了spring 工程, 我以为要好了, 启动之后, 问题依旧存在;
  • 我慌了, 还有点暴躁, 嗯…
  • 在idea 中我进行了反复刷新, reimport, invalid-cache-and-restart …; 并没有任何作用;
  • 我把这个项目的pom.xml 和 正常有 resources 插件的项目的pom.xml 文件对比了一下: 发现这个项目packing 写的赫然是:<packaging>pom</packaging>;
  • 我把它(<packaging>pom</packaging>)删除了, 刷新, resources 立马出来了;
  • 启动项目 very-good;
  • 我去那个人那里看了看, 他的项目外面还包着东西, 行吧. 我也看不懂这其中的玄机.
  • 我只能说: Maven 果然博大精深.

版权声明:本文为wwq921220原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。