【问题标题】:Creating different wars from single generic project using maven使用 maven 从单个通用项目创建不同的战争
【发布时间】:2014-07-22 04:32:24
【问题描述】:

我有一个基于 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

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

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

我使用了 maven 分析,它使用通过属性文件提供的资源创建不同的战争,但我也希望在战争创建期间过滤包。

有没有办法做到这一点? Maven 战争插件是否支持它?我正在使用 maven,spring 网络服务。

【问题讨论】:

    标签: java maven-plugin maven-war-plugin


    【解决方案1】:

    您可以在构建文件时使用 maven war 插件。 WAR 中打包时,可以对 excludes/includes 类中的目标/类中的类进行配置。

    将以下代码添加到您的 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>
    

    或者您可以仅通过使用&lt;includes&gt; 标签指定要包含的类来包含某些类。

    <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>
    

    注意:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多