maven - maven-dependency-plugin 和 maven-war-plugin 之间的资源提取冲突?
问题描述
我曾经将一些依赖项中的资源提取到我的项目生成的 WAR 中(作为覆盖)。但是由于我添加了对依赖项插件的 unpack 目标的调用,因此似乎只有 ZIP 存档中的资源被嵌入到该 WAR 中。
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-yyy-war</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-yyy-import</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-yyy-export</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.xxx.www</groupId>
<artifactId>www-server</artifactId>
<version>${www.version}</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<overlays>
<overlay />
<overlay>
<groupId>com.xxx.www</groupId>
<artifactId>www-server</artifactId>
<type>war</type>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
我想要的是将 ZIP 资源添加到现有资源中。但我最终只得到了 ZIP 资源,在这里。
<dependencies>
<dependency>
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-yyy-etat</artifactId>
<version>${project.version}</version>
<type>zip</type>
</dependency>
...
</dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-xxx-etat</artifactId>
<version>${project.version}</version>
<type>zip</type>
<outputDirectory>${project.build.directory}/war/work/com.xxx.www/www-server/WEB-INF/classes</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
有没有人知道一个问题或看到我在这里做错了什么?非常感谢您的任何帮助或建议。
解决方案
我终于发现叠加层可以处理不同的类型,所以这里是答案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<overlays>
<overlay />
<overlay>
<groupId>com.xxx.www</groupId>
<artifactId>www-server</artifactId>
<type>war</type>
</overlay>
<overlay>
<groupId>com.xxx.custom.www.yyy</groupId>
<artifactId>www-yyy-etat</artifactId>
<type>zip</type>
<outputDirectory>WEB-INF/classes</outputDirectory>
</overlay>
</overlays>
</configuration>
</plugin>
不需要 maven-dependency-plugin。
推荐阅读
- javascript - Angularjs allowing the user to input only numbers and forward slash(/)
- python - Extract webscraped python data to SQLite, excel or xml?
- java - encrypted object serialization on android, cannot load from file
- python - 在您单击按钮之前,在 tkinter 中显示空图
- javascript - 列显示添加到购物车Angular js的行的状态
- azure-active-directory - Microsoft Graph - 无法获取用户 Windows AD 组
- r - R中带有神经网络包的ReLU激活函数
- azure - QnA bot only responds when using exact phrasing in Azure and Teams Chat
- filtering - Get-WmiObject using AND or OR (they are working in the opposite manner)
- javascript - JQuery validation error placement repeating itself