java - 使用 maven 构建具有不同依赖项的相同 webapp 两次的最佳方法

标签 java maven war

我有一个带有 webapp 的 Maven 项目,我需要两个版本,每个版本都有自己的一组依赖项。目的是支持存储客户端的两个不同(且冲突)版本。在这两种情况下,webapp 代码、配置文件和除了某些库之外的任何东西都是相同的。正确的客户端在运行时加载:我只需要将正确的 jar(及其依赖项)放入 webapp 的 lib 文件夹中。

如果我手动部署依赖项,我将失去检查版本冲突的机会(当我构建一个所有依赖项都正确设置的 Maven 项目时,我会这样做)。

我不想在 maven 存储库上部署 webapp,因为它不是一个库,它只会生成一个大存档(主要是因为嵌入的依赖项),而这会白白占用空间。因此,为了构建最终 war ,我无法添加对 webapp 项目的依赖。

我不想在两个不同的模块中复制通用的 webapp 类文件和配置文件。由于每次更新一个文件时两个模块之间都需要同步,这将使 future 的发展更加困难。

关于如何解决这个问题有什么建议吗?

请注意,最好的解决方案应该允许同时构建两个 war 。

最佳答案

使用 Maven 配置文件。

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

您可以将某些依赖项放入某些配置文件中,并通过带有 -P 参数的命令行激活/停用它们。

关于java - 使用 maven 构建具有不同依赖项的相同 webapp 两次的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050945/

相关文章:

java - 使用 jOOq 时如何将参数值用括号括起来?

java-7 - 使用 openjdk7 在 Linux openshift 云服务器上运行 Glassfish 4

java - SMTP客户端Java程序

java - WAR - Gradle 多模块应用程序 - TypeNotPresentException

java.lang.ClassCastException : android.graphics.drawable.ColorDrawable无法转换为android.graphics.drawable.BitmapDrawable

java - 根据项目版本使用发布或快照存储库进行手动部署

Eclipse+Maven src/main/java 在 Package Explorer 的 src 文件夹中不可见

javax.el.E​​LException : java. lang.NoClassDefFoundError: org/hibernate/HibernateException

deployment - 在tomcat 6中导致Grails生产WAR,热重新部署错误:在通过ApplicationContext访问bean之前,请调用 'refresh'

tomcat - Grails WAR 部署问题