利用assembly.xml打包maven项目报错

 

问题现象

使用以下assembly.xml打包时报Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project south-interface: Failed to create assembly: Error creating assembly archive release: Failed to retrieve numeric file attributes using: '/bin/sh -c ls -1nlaR /'的错误

<assembly>
    <id>release</id>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <!-- 从目标目录拷贝文件去压缩 -->
        <fileSet>
            <directory>target</directory>
            <includes>
                <include>*.jar</include>
            </includes>
            <outputDirectory>/</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>target/lib</directory>
            <outputDirectory>/lib</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>target/config</directory>
            <outputDirectory>/config</outputDirectory>
        </fileSet>

        <!-- 从源目录拷贝文件去压缩 -->
        <fileSet>
            <directory>/</directory>
            <includes>
                <include>*.sh</include>
                <include>*.bat</include>
            </includes>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

原因分析

原因是识别不了文件目录"/"

解决方法

需要把directory和outputDirectory开头的"/"去掉,改成下面的形式打包就可以了

<assembly>
    <id>release</id>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <!-- 从目标目录拷贝文件去压缩 -->
        <fileSet>
            <directory>target</directory>
            <includes>
                <include>*.jar</include>
            </includes>
            <outputDirectory></outputDirectory>
        </fileSet>
        <fileSet>
            <directory>target/lib</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>target/config</directory>
            <outputDirectory>config</outputDirectory>
        </fileSet>

        <!-- 从源目录拷贝文件去压缩 -->
        <fileSet>
            <directory></directory>
            <includes>
                <include>*.sh</include>
                <include>*.bat</include>
            </includes>
            <outputDirectory></outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

猜你喜欢

转载自blog.csdn.net/m819177045/article/details/110875264