gpt4 book ai didi

Maven 程序集 : rename unpacked file

转载 作者:行者123 更新时间:2023-12-01 01:16:35 25 4
gpt4 key购买 nike

我使用 maven-assembly-plugin 的多个 Maven 项目需要将两个二进制文件复制到一个文件夹中。
这些是我所有项目共有的两个原始文件:

procrun.exe

procrunw.exe


我希望重用这组文件。它们可能来自诸如 JAR 或 ZIP 文件之类的依赖项,以便稍后在我的构建过程中解压缩它们。这样,如果我以后选择升级二进制文件,我可以创建我的公共(public)项目的新版本,并将依赖项更改为我的公共(public)项目。这样做的另一个原因是因为我想使用最小化单个项目中与构建相关的文件的数量。
现在,棘手的部分是我需要 在解压缩依赖项时重命名每个文件 .例如,对于项目 A,我需要将文件复制如下:

bin/projectA_procrun.exe

bin/projectA_procrunw.exe


部分解决方案
我的部分解决方案是将这两个文件放在 src/main/build/bin 文件夹 在每个 Maven 项目上 .
这并不理想,但至少我能够重用通用程序集文件的内容 as described in this page :
 <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>my_assembly</id>

<formats>
<format>zip</format>
</formats>

<files>
<file>
<source>src/main/build/bin/procrun.exe</source>
<outputDirectory>bin</outputDirectory>
<destName>${myexecutable.name}.exe</destName>
</file>
<file>
<source>src/main/build/bin/procrunw.exe</source>
<outputDirectory>bin</outputDirectory>
<destName>${myexecutable.name}w.exe</destName>
</file>
</files>

<!-- Additional details ommitted -->
</assembly>
尝试失败
输出文件名映射 Assembly 中的属性允许重命名 Artifact ,但不允许重命名程序集中的文件。
一次失败的尝试是将每个文件注册为一个单独的 Maven Artifact 。这样,我可以在与我的每个 Artifact 相对应的部分内使用 outputFileNameMapping。
我遇到的问题是 Nexus 不喜欢将“exe”作为 Artifact 。
问题
关于如何通过增强我的局部或采用替代方法来实现预期结果的任何想法?

最佳答案

您可能无法告诉程序集插件解包并重命名。
但是您可以使用 antrun plugin在程序集插件运行后重命名文件。

在这之后你的 pom 看起来不会很漂亮。

但是话又说回来,您已经在处理自定义程序集,所以我猜您可能愿意接受:-)

关于Maven 程序集 : rename unpacked file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com