在一个web应用程序中,我的项目a(前端)依赖于项目B(业务层)。
项目B依赖于项目C(存储库层)。
因此,位于项目C (Repo)中的类可以在项目a (Front)中实例化。但显然我不想这样。
我试图在项目的A pom.xml中声明排除项目C,同时声明对项目B的依赖关系-但是当构建WAR时,项目的C jar被排除在最终的WAR之外。
我如何排除项目C从项目a在编译时,而不是在WAR构建时或运行时?
您可以使用排除,并在范围为runtime
的A的pom中添加对C的显式依赖。这样,它就不在编译类路径中,而应该在war文件中。
项目A
应将项目B
作为依赖项,但不包括项目C
。WAR的构建可以手动重新包含项目C
。
下面是一个排除依赖项的示例。
<dependency>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
<type>jar</type>
<optional>true</optional>
<exclusions>
<exclusion>
<artifactId>xalan</artifactId>
<groupId>xalan</groupId>
</exclusion>
<exclusion>
<artifactId>xercesImpl</artifactId>
<groupId>xerces</groupId>
</exclusion>
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
</exclusions>
</dependency>