提供两个不同战争的多模块项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提供两个不同战争的多模块项目相关的知识,希望对你有一定的参考价值。

我正在开发一个多模块Spring MVC项目,其中一个模块必须发出具有所有依赖关系的战争,而另一个模块必须发出具有很少依赖关系的战争。这可能吗?如果可以的话,如何实现?

答案

使用Maven配置文件,并仅在某些配置文件中添加一些依赖项或通过范围将它们设置为:提供:

https://www.baeldung.com/maven-profiles

示例:

<profiles>
    <profile>
        <id>dev</id>
        <dependencies>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>postgresql</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>prod</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <!-- my own library in my private repository which acts like a mock of testcontainers project. Don't ask :-) -->
            <dependency>
                <groupId>cz.jiripinkas</groupId>
                <artifactId>fake-testcontainers</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </profile>
</profiles>

然后您使用以下项目构建项目:

mvn clean install -P dev

这将放入WAR测试容器库中

或:

mvn clean install -P prod

这将放入WAR fake-testcontainer库中

以上是关于提供两个不同战争的多模块项目的主要内容,如果未能解决你的问题,请参考以下文章

Android 使用两个不同的代码片段获取当前位置 NULL

基于 Spring MVC 注解的多模块项目配置

针对不同语言的多模块分析

Thymeleaf 无法解析多模块 Spring Boot 项目中的模板

具有父 POM 的多模块项目的 Maven 版本控制

python中的多存储库管道