我正在研究一个多模块Spring MVC项目,其中一个模块必须发出具有所有依赖关系的战争,而另一个模块必须发出具有很少依赖关系的战争。这可能吗?如果是,我该如何实现?项目详细信息如下:
结构为:
Parent pom:
<modules>
<web-war-with-all-dependencies>
<web-ear-without-dependencies> --> Only to pack the war into an ear.
</modules>
在Websphere中创建一个共享库,并将所有依赖项添加到其中。因此, <无依赖的网络耳朵> 将在那里部署。
答案 0 :(得分:0)
使用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伪造测试容器库中