gpt4 book ai didi

java - 有没有办法从命令行覆盖 "provided"maven 范围?

转载 作者:行者123 更新时间:2023-11-30 06:31:45 25 4
gpt4 key购买 nike

我对maven很陌生,继承了一个我需要维护的旧应用程序。它有几个提供的库(由容器提供)。我想知道是否有任何方法可以在不修改 pom.xml 的情况下生成所有依赖项(包括提供的库)的 war 。 (有很多)有没有办法从命令行覆盖所有libs的范围?

我的挑战是,我正在处理一个具有相当深的依赖关系图的企业应用程序,并且到处都有很多提供的依赖关系。作为我实验的一部分我想生成一场独立且具有所有依赖性的 war 。更新数十个 pom 并更改范围不是我想要的。有什么方法可以从命令行执行此操作吗?

最佳答案

你只需要更改一个引发 war 的 pom。在此 pom 中,指定当前“提供”的所需范围的依赖项。

Maven 根据 war 项目所依赖的模块计算其传递依赖项,并在提供的范围内引入这些特定的依赖项。您可以将其视为定义这些依赖项的默认配置。您可以通过在 war 模块中显式指定所需范围的依赖项来覆盖默认(继承)范围。

在我看来,非 war 模块可能不应该将范围设置为提供的,而应该将此决定留给实际创建可运行 Artifact 的模块(例如,您的 war 模块)。例如,如果您要制作一个 fat jar 来将代码作为独立应用程序执行(相对于提供这些依赖项的容器中的 war ),您可能希望将它们包含在 jar 中。

关于java - 有没有办法从命令行覆盖 "provided"maven 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944626/

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