我有同样的问题。我通过使用战争覆盖解决了它。
我在父项目中有一个基本主题,它在客户的配置项目中进行了扩展。配置项目只是将战争用作运行时依赖项,并且父项目的文件被覆盖,如此处所述。
只需在客户端项目中添加依赖即可:
<dependency>
<groupId>com.mygroup</groupId>
<artifactId>my-parent-project</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
并在客户端主题的styles.css文件中导入父项目的样式:
@import "../parent-theme/styles.css"
并添加客户的样式。
如果您需要使用父项目的类,您可以attachClasses
在 maven-war-plugin 配置中设置属性 true ,如果需要调试,也可以使用 maven-source-plugin 附加源:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
并将它们包含在您客户的项目中:
<dependency>
<groupId>com.mygroup</groupId>
<artifactId>my-parent-project</artifactId>
<version>1.0.0-SNAPSHOT</version>
<classifier>classes</classifier>
<type>jar</type>
<scope>compile</scope>
</dependency>