【问题标题】:Dynamically loading dependency in maven在maven中动态加载依赖
【发布时间】:2011-12-15 10:30:06
【问题描述】:

我们可以使用 maven 动态加载依赖项吗?

例如,假设我们有一个 Web 项目需要特定的 jar A 才能在 Glassfish 服务器上运行,而同一个项目需要额外的 jar B 才能在其 WEB-INF/lib 文件夹中的 weblogic 上运行。

是否需要为 glassfish 和 weblogic 提供单独的 pom.xml 文件,然后根据所使用的服务器运行适当的 pom.xml?

或者我可以拥有一个具有两个依赖项的 pom.xml,即其中指定了 jar A 和 jar B,并且取决于在运行它时传递​​给 pom.xml 的参数(如 mvn clean package -Dserver=glassfish),它只会加载 jar A 吗?

这可能吗?

这样做最合适的方法是什么?

请帮忙。

【问题讨论】:

    标签: dynamic dependencies maven-3


    【解决方案1】:

    您可以在 Maven 中利用配置文件的概念。您可以创建执行环境的完整配置文件并使用该配置文件启动 maven。欲了解更多信息,请参阅http://maven.apache.org/guides/introduction/introduction-to-profiles.html

    这些配置文件可以在 pom 中定义,也可以在外部文件中定义并在 pom.xml 中引用。您可以通过使用 -P 选项启动配置文件来激活配置文件,mvn -P

    【讨论】:

    • 感谢您的快速回复。我们能否在 pom 中有一些常见的依赖关系,然后在每个配置文件中配置特定的依赖关系。那么,生成的 war 文件将有共同的依赖关系以及当前执行的配置文件中指定的依赖关系?
    • 是的!如果这适合你。无论哪种方式都应该没问题,尽管我不确定最佳做法是什么。配置文件具有比仅用于依赖项更广泛的应用范围。例如,您不需要为每晚构建生成 javadoc。因此,创建一个配置文件来生成 javadoc 并将其仅用于发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2021-09-19
    • 2013-11-18
    • 1970-01-01
    • 2019-09-02
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多