我正在尝试使用像这样的maven-assembly插件来构建项目JAR的zip以及运行它所需的所有库:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/exportWithDepends.xml</descriptor>
</descriptors>
<finalName>myname</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
我的装配看起来像:
<assembly>
<id>jar-with-dependencies</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>lib</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<fileMode>755</fileMode>
</dependencySet>
</dependencySets>
<files>
<file>
<source>${project.build.directory}/${project.build.finalName}.jar</source>
</file>
</files>
</assembly>
这样可以正确拉链。
然后,dependencySet上的fileMode标志为LIB内的每个元素提供755 CHMOD。问题是,实际的LIB文件夹本身保持777.有没有办法让LIB文件夹也得到755?
让maven做一些它不想做的事总让我伤心:(
答案 0 :(得分:7)
这真的很奇怪,但是在pom.xml
的片段之后会将0755模式设置为汇编的所有目录。虽然,我认为这不是非常可靠(面向未来),因为显然,maven作者打算使用众所周知的Unix八进制表示法指定目录访问模式,不是十进制等效。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<archiverConfig>
<!-- 493D == 0755, seems to be assembly plugin bug -->
<defaultDirectoryMode>493</defaultDirectoryMode>
</archiverConfig>
</configuration>
原始信用必须在此处:https://issues.apache.org/jira/browse/MASSEMBLY-494
答案 1 :(得分:4)
答案 2 :(得分:1)
我不认为maven-assembly-plugin现在可以做到这一点。所以我刚刚对bash脚本进行了更改...