配置文件中明明写的端口号是8801,为什么启动的时候显示成了8080

事情经过:
今天项目新建单元模块的时候,不小心把新的模块A的路径放到了模块B下面,正常A和B应该是平级的,然后修改pom文件,新建启动类以后才发现,把它移出来,这个时候再次启动B的时候怪异的事情发生了。
问题现象:
配置文件中明明写的端口号是8801,为什么启动的时候显示成了8080
file-20250625212030417.png

问题原因:

file-20250625212215809.png

删除以后重新生成的target代码里面也没有
问题实际原因:
file-20250625215254873.png

还是之前学习maven项目管理的时候没有学习,看见这行代码以后就应该立马找到问题原因。以后一旦将新的模块路径到错位置,放到别的模块之下,刷新maven以后idea就会自动帮助我们生成这行代码,会将别的模块作为父模块。

<packaging>pom</packaging> 它的作用是什么,为什么pom文件中添加了它以后生成的target/com下面不会生成yml文件?
<packaging>pom</packaging> 在 Maven 项目中表示这个模块是一个 聚合模块(父模块),不是可执行的应用,也不会参与编译生成可运行的 jarwar 文件。
file-20250625222647920.png
file-20250625222708936.png

如果你重新编译或打包项目后,发现 target 目录中缺少 yml 配置文件(例如 application.yml),常见的原因有以下几种:

✅ 1. 资源文件未放在正确目录

Maven 只会将 src/main/resources/ 中的文件拷贝到 target/classes,因此:

✔ 正确结构应为:

css

复制编辑

src/ main/ java/ resources/ application.yml

❌ 错误结构(这些不会被打包):

css

复制编辑

src/ main/ application.yml ❌ resources/ config/ application.yml ✅(会打包)


✅ 2. pom.xml 配置错误,排除了 yml 文件

检查是否有以下排除资源的配置:

xml

复制编辑

<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.yml</exclude> <!-- ❌ 这样会忽略 .yml 文件 --> </excludes> </resource> </resources> </build>

解决办法:删除或修改 excludes,确保 .yml 不被排除。


✅ 3. 使用了多模块项目,当前模块是 <packaging>pom</packaging>

正如你前面提到的:

xml

复制编辑

<packaging>pom</packaging>

  • 这类模块不会执行资源处理,也不会拷贝 .yml 文件。

  • 如果你看的是父模块的 target,它是不会生成 .yml 的。

解决办法

  • 去查看具体子模块(比如 cloud-provider-hystrix-payment)的 target 目录。

  • 或者把需要打包的模块设置为 <packaging>jar</packaging>


✅ 4. 清理未彻底或编译失败

如果你之前打包失败或部分清理不完整,有可能导致目标文件缺失。

解决方法:

bash

复制编辑

mvn clean package

bash

复制编辑

mvn clean install

确保构建完整重新生成。


✅ 5. IDE 没有识别资源目录

如果你使用 IntelliJ IDEA 或 Eclipse,IDE 没有正确标记 src/main/resources 为资源目录,会导致构建时 .yml 不被识别和复制。

检查点:

  • 在 IDEA 中右键 src/main/resources → Mark Directory as → Resources Root

  • 然后重新构建。


✅ 如何确认 .yml 是否被正确打包?

看是否在这个路径下生成:

bash

复制编辑

target/classes/application.yml


总结

问题 解决方案
.yml 不在 resources 目录 放到 src/main/resources/
被排除掉 检查 pom.xml 中是否 <exclude> 掉了 .yml
父模块设置为 <packaging>pom</packaging> 去看子模块,或设置为 jar
编译异常或缓存问题 重新执行 mvn clean package
IDE 未识别资源目录 在 IDE 中手动标记 resources
posted @ 2025-06-25 22:31  哩个啷个波  阅读(38)  评论(0)    收藏  举报