问题现象
使用以下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>