gpt4 book ai didi

java - 使用 Maven 从单个通用项目创建不同的 war

转载 作者:行者123 更新时间:2023-12-01 12:54:41 25 4
gpt4 key购买 nike

我有一个基于 REST Web 服务的通用类型的项目。该项目包含针对不同客户端的包。例如

com.package.client1.service
com.package.client2.service
com.package.client3.service

com.package.client1.service.impl
com.package.client2.service.impl
com.package.client3.service.impl

这只是一个示例,但有很多包。我想从我的通用项目生成三个 war ,其中包含运行 client1、client2 和 client3 wars 所需的必要包。

我可以为 client1、client2 和 client3 创建三个新项目并生成 war 。但是,如果有办法从我的通用项目中为不同的客户端生成不同的 war ,这样我就不必为不同的客户端创建新项目并粘贴该客户端所需的必要包。

我使用了 Maven 分析,它通过属性文件提供的资源创建不同的 war ,但我也想在 war 创建期间过滤包

有办法做到这一点吗? maven war插件支持吗?我正在使用maven,spring web服务。

最佳答案

您可以在构建文件时使用 Maven War 插件。配置可以做excludes/includes在 WAR 中打包时,从 target/classes 中的包中获取类。

将以下代码添加到您的 pom.xml 文件中以排除某些类:

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<!-- To exclude certain classes -->
<excludes>**/client2/**/*.class, **/client3/**/*.class</excludes>
</configuration>
</plugin>
</plugins>

或者,您可以仅通过使用 <includes> 指定要包含的类来包含某些类。标签。

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>

<!-- To include certain classes -->
<includes>**/client1/**/*.class</includes>
</configuration>
</plugin>
</plugins>

注意:

<excludes>/<includes>应该采用一个模式,而不是一系列 <exclude>/<include>元素。多个excludes/includes用逗号分隔","

对于模式**/client2/**/*.class ,第一个**/表示com.package下一个/**/表示service and service.impl包裹。您还可以通过更改 *.class 添加特定的类模式为classA.class

输出:生成的 war 文件包含 com.package.client1.service 中的类和com.package.client1.service.impl包。

关于java - 使用 Maven 从单个通用项目创建不同的 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988066/

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