gpt4 book ai didi

java - Eclipse(STS)/Maven集成问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:01 24 4
gpt4 key购买 nike

我正在开发一个相当大的项目,该项目使用 Maven 进行依赖管理。作为此过程的一部分,我们使用 Maven 配置文件来构建和替换测试/开发/生产环境之间不同的某些属性文件。

要执行构建,我将使用正确的配置文件执行 Maven:build,然后 mavens Reactor 将以正确的顺序构建项目并将 jar 存储在 .m2 文件夹中,例如首先是域 jar,然后是服务 jar(域 jar 包含在其 jar 中作为依赖项)等。这最终会生成一个 war 文件,其中包含运行 war 所需的所有正确库。

当 eclipse 执行每次保存文件时执行的默认构建时,jar 不会使用任何配置文件构建,而只是常规构建。

当我将最终的 war 文件推送到服务器时,它会在服务器启动时爆炸(通过 eclipse 启动和部署),我会在 lib 文件夹中获取 maven 打包到 war 文件中的所有 jar,以及 eclipse 构建的所有 jar。

例如

lib/
domain.jar (built by eclipse)
domain.SNAPSHOT.1.0.jar (built by maven)
etc

有什么办法可以防止这种情况发生吗?这样做的最终结果是每个属性文件都有两个,并且只有它们加载的顺序才能决定使用哪个属性文件。由于在不同的环境中使用不同的属性,这确实很麻烦。

最佳答案

我发现了这个问题的一个稍微有点棘手的解决方案。

在 Web 项目属性 -> 部署程序集中,我修改了有问题的 jar 文件的路径,例如

中的 domain.jar

WEB-INF/lib/domain.jar

WEB-INF/autogen/domain.jar

这会导致 eclipse 生成的 jar 文件(带有错误的属性文件)被部署到一个文件夹,而该文件夹在 tomcat 启动时不会被加载。这不是一个完美的解决方案,但它允许 Eclipse 自动构建的所有好处,例如如果域的接口(interface)发生更改,Web 项目中的代码完成和错误消息等,同时还在部署时提供正确的配置文件。

将其留给处于这种情况的其他人。

关于java - Eclipse(STS)/Maven集成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com