【发布时间】:2017-10-24 23:39:50
【问题描述】:
我的团队在运行依赖于其他 Maven 项目的 Maven 项目时经常遇到不便,这些项目已修改但未重新安装到本地存储库。
为了简单起见,假设我有两个 Maven 项目 Business 和 Web。我的 Web 项目在其依赖项中包含 Business 项目和一个 Jetty 插件,它允许我运行本地 Web 服务器进行开发。
在 IntelliJ 中,两个项目都使用 Maven Add project 在同一个窗口中打开,因此我可以轻松地在两个项目之间浏览代码。
目前,我在 IntelliJ 中设置了运行配置,以便 mvn clean install -DskipTests 将在 Business 项目上运行,然后在 Web 上运行 mvn clean jetty:run。这使我可以使用在 Business 中所做的最新修改来运行 Web。如果我不在Business 项目上运行clean install,那么Web 将在旧版本的Business 源代码上运行。此外,这会弄乱 IntelliJ 调试器,因为正在调试的源代码与运行时类不匹配。
在实际应用中,Dependency Injection Bootstrap 项目可能依赖于Web、Business、Some Database Adapter X em>、Some Database Adapter Y、Some API Client Adapter...因此clean install 可能会变得昂贵。另外很容易忘记构建依赖项目,这就是为什么Maven目标总是在运行Jetty之前运行的原因。
有没有办法在开发过程中提高效率,以便在运行依赖项目时对依赖项目的修改将处于活动状态,而无需运行任何/许多 Maven 目标?
【问题讨论】:
-
听起来你应该把那些依赖于另一个的项目放到一个单一的多模块构建中......这将使处理更容易......
-
@khmarbaise 我们已经在使用多模块构建并在 IntelliJ 中打开根项目。这个问题现在已经解决了,因为我已经设置了一个 Jetty 运行配置(而不是运行一个 Maven 目标来运行 Jetty)。
标签: java maven intellij-idea