我试图实现与此处发布的问题相同的目标,即将战争依赖项组装到可部署的 zip 中,战争及其一些解压缩的 *.yml 文件都在最终的 zip 中。我已将战争文件正确组装到 zip 中,但我无法让 maven-dependency-plugin 将 *.yml 文件从战争中解压缩以重新打包。
为了清楚起见,这就是我所拥有的:
- 项目一
- 名称:myapp-war
- 包装:战争
- 项目 2
- 名称:myapp-部署
- 包装:pom
- 依赖:myapp-war:war
- 所需输出:myapp.zip,其中包括:
- bin/myapp.war
- conf/application-*.yml
这是我的插件声明的样子:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>unpack</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>myapp</groupId>
<artifactId>myapp-war</artifactId>
<type>war</type>
<outputDirectory>${project.build.directory}/unpack</outputDirectory>
<includes>**/*.yml</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
我还尝试了一个变体,在其中声明<outputDirectory>
and<includes>
就在 之下,根据unpack mojo docs<configuration>
是允许的。
无论哪种情况,我都会得到一个空的 myapp-deploy/target/unpack 文件夹,以及 maven 输出中的 [INFO] 和 [DEBUG] 消息,说明:
[INFO] Configured Artifact: myapp:myapp-war:?:war
[INFO] Unpacking /build/myapp-war/target/myapp-war-0.0.1-SNAPSHOT.war to /build/myapp-deploy/target/unpack with includes "**/*.yml" and excludes ""
[DEBUG] Found unArchiver by type: org.codehaus.plexus.archiver.zip.ZipUnArchiver$__sisu2@692a65b1
[DEBUG] Expanding: /build/myapp-war/target/myapp-war-0.0.1-SNAPSHOT.war into /build/myapp-deploy/target/unpack
[DEBUG] expand complete
maven 似乎已经理解了我的指示,但似乎并没有像它声称的那样解包。知道我做错了什么吗?