我的 maven 构建使用 unpack 来提取一些包,如 zulu 或 postgres,其中包含只读文件(例如 -r-xr-xr-x pgsql/lib/libssl.so.1.0.0)。重新构建时,[WARNING] Unable to expand to file .../pgsql/lib/libssl.so.1.0.0
表明该文件没有被覆盖 - 只要我不切换版本就可以(我仍然希望没有警告)。
但是,例如,如果我切换到较新的 postgres,如何解压以覆盖文件?或者,如果这太复杂了,总是覆盖文件?
请注意,包含只读文件的文件夹是可写的,因此没有技术原因不覆盖文件(删除 - 创建)。
假设包所有者有原因,我也更愿意将只读文件保持为只读。
在https://maven.apache.org/plugins/maven-dependency-plugin/unpack-mojo.html我发现<overWriteIfNewer>
默认情况下这是真的。由于我的构建总是试图覆盖文件,我认为 overWrite 通常是正确的,它只是没有成功。
作为参考,这是我的 pom.xml 的相关部分
<id>unpack</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.postgresql</groupId>
<artifactId>${postgresql.artifactId}</artifactId>
<version>${postgresql.3rdparty.version}</version>
<classifier>binaries</classifier>
<type>tar.gz</type>
<outputDirectory>${postgresql.install.folder}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>