renaming a file while creating zip file through Maven-assembly plugin

Sunil Rk picture Sunil Rk · May 14, 2013 · Viewed 17.1k times · Source

i am using maven-assembly plugin to create the zip , how can i rename some files while zipping using the same plugin??

Update:

This is the profile in 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>

This is 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>

i am getting that jar and unpacking it, then renaming a file and zipping it again. Thanks

Answer

khmarbaise picture khmarbaise · May 15, 2013

You can use

 <outputFileNameMapping>...</outputFileNameMapping>

which sets the mapping pattern for all dependencies included in this assembly uses

default value:

${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.