gpt4 book ai didi

java - 在 Maven 构建的 WAR 中有条件地包含 JAR

转载 作者:行者123 更新时间:2023-11-29 06:51:49 24 4
gpt4 key购买 nike

我必须使用 Maven 构建一个 war 文件以有条件地包含 jars,每个 jar 都是由一个单独的 maven 项目创建的,该项目将 jar 部署到 nexus(我们的组织远程)存储库

例如:我有像这样的 jar core.jar,reward.jar,payment.jar,domains.jar 等等我需要根据条件(environmnet)建立最终 war 以包含上述 jar

最终 war 组合(w1)w1.war : core.jar,domains.jarw1.war : core.jar,domains.jar,rewards.jar(如果奖励适用,指定包含此 jar 的任何方式)

最佳答案

Maven WAR Plugin允许您包含/排除 JAR。例如:

  <plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<packagingExcludes>
WEB-INF/lib/excluded.jar
</packagingExcludes>
<packagingIncludes>
WEB-INF/lib/included.jar
</packagingIncludes>
</configuration>
</plugin>

您可以使用配置文件将包含/排除与条件相关联。例如,让 WAR 插件使用属性 (${excludedResources}, ${includedResources}) ...

  <plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<packagingExcludes>
${excludedResources}
</packagingExcludes>
<packagingIncludes>
${includedResources}
</packagingIncludes>
</configuration>
</plugin>

...并通过配置文件为这些属性定义值:

  <profiles>
<profile>
<id>prod</id>
<properties>
<excludedResources>WEB-INF/lib/a.jar,WEB-INF/lib/b.jar</excludedResources>
<includedResources>WEB-INF/lib/c.jar</includedResources>
</properties>
</profile>
<profile>
<id>tst</id>
<properties>
<excludedResources>WEB-INF/lib/x.jar,WEB-INF/lib/y.jar</excludedResources>
<includedResources>WEB-INF/lib/z.jar</includedResources>
</properties>
</profile>
</profiles>

因此,您可以使用 Maven WAR 插件的内置功能来调整 WAR 内容,并且可以使用 Maven 配置文件使这些调整成为有条件的。

关于java - 在 Maven 构建的 WAR 中有条件地包含 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45753587/

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