9

我正在使用maven-assembly插件创建 zip,如何在使用相同插件进行压缩时重命名一些文件?

更新:

这是 pom 中的配置文件

    <profile>
        <id>D1</id>
        <activation>
            <property>
                <name>D1</name>
                <value>true</value>
            </property>
        </activation>
        <build>
            <plugins>               
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2.2</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <descriptors>
                                    <descriptor>assembly/online-distribution.D1.xml</descriptor>
                                </descriptors>
                                <appendAssemblyId>false</appendAssemblyId>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

这是 Assembly.xml

<?xml version="1.0" encoding="UTF-8" ?>
<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">
<formats>
    <format>tar.gz</format>
</formats>
<id>online</id>
<includeBaseDirectory>false</includeBaseDirectory>
    <dependencySet>
        <outputDirectory>resources</outputDirectory>
        <unpack>true</unpack>
        <includes>
            <include>${project.groupId}:core-config:jar</include>
        </includes>
        <unpackOptions>
            <includes>
            <include>coresrv/env-config.D1.properties</include>
            </includes>
        </unpackOptions>
    </dependencySet>
    <files>
    <file>
        <source>${project.groupId}/core-config.jar/coresrv/env-config.D1.properties</source>
        <outputDirectory>/</outputDirectory>
        <destName>env-config.properties</destName>
    </file>
</files>
</assembly>

我得到那个罐子并解压它,然后重命名一个文件并再次压缩它。谢谢

4

4 回答 4

13

您可以使用

 <outputFileNameMapping>...</outputFileNameMapping>

它为此程序集使用的所有依赖项设置映射模式

默认值:

${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.
于 2013-05-15T13:20:47.853 回答
3

为后代回答一个旧帖子......下次我问谷歌并被送到这里。

在 Maven 中重命名曾经是一件痛苦的事,这个插件可以按照 tin 上的说明进行操作:

复制重命名 Maven 插件

(在Maven 中心可用)

便于使用:

        <plugin>
            <groupId>com.coderplus.maven.plugins</groupId>
            <artifactId>copy-rename-maven-plugin</artifactId>
            <version>1.0.1</version>
            <executions>
                <execution>
                    <id>copy-properties-file</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <sourceFile>source.props</sourceFile>
                        <destinationFile>destination.properties</destinationFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>

注意:rename目标将移动目标/中的文件

于 2017-03-22T00:42:19.183 回答
2

我遇到了同样的问题,我需要使用 unpack 重命名一些文件,作为解决方案,我们可以使用 maven-assembly-plugin 的两次执行。

在第一次执行期间,我们将使用格式dir而不是存档格式之一,并将准备文件内容,结果将具有包含所有需要文件的文件夹。

在第二次执行期间,我们将使用上一次执行的文件夹作为源文件fileSetsfiles我们将能够使用 重命名任何文件files.file.destName,并且作为第二次执行的格式,我们可以使用存档格式,如zip创建最终存档。

于 2016-01-27T12:11:34.577 回答
0

您只需要将它添加到如下的程序集插件执行中;

<executions>
 <execution>
  <configuration>
    <finalName>  you can give any name you want  <finalName>
  <configuration>
 </execution>
</executions>
于 2021-09-29T12:32:39.103 回答