Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven程序集插件chmod输出文件夹_Java_Maven_Maven Assembly Plugin - Fatal编程技术网

Java Maven程序集插件chmod输出文件夹

Java Maven程序集插件chmod输出文件夹,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我正在尝试使用maven assembly插件,比如构建我的项目JAR的zip以及运行它所需的所有库: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version&

我正在尝试使用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>

org.apache.maven.plugins
maven汇编插件
2.2.1
组装
包裹
单一的
src/main/assembly/exportWithDependes.xml
我的名字
假的
我的程序集看起来像:

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

带有依赖项的jar
拉链
假的
假的
运行时
解放党
真的
755
${project.build.directory}/${project.build.finalName}.jar
这项工作,使正确的拉链

然后dependencySet上的fileMode标志给LIB中的每个元素一个755 CHMOD。问题是,实际的LIB文件夹本身保持在777。有没有办法让LIB文件夹也获得755


让maven做它不想做的事情总是让我很难过:(

我自己还没有尝试过,所以我不能说它是与目标目录一起工作,还是只与添加到目标目录的目录一起工作,但你真的应该尝试一下

 <directoryMode>755</directoryMode>
755

这是在

我不认为maven汇编插件现在可以做到这一点。所以我只是在bash脚本中做了一些更改…

这真的很奇怪,但是下面的
pom.xml
片段将把0755模式设置为所有汇编目录。不过,我认为这不是很可靠(未来证明)显然,maven的作者打算使用众所周知的Unix八进制表示法来指定目录访问模式,而不是十进制等效形式



我确实尝试过,它似乎只是在lib中获取目录。这很酷,但不是我想要的:(这在2014年4月仍然适用,使用maven assembly插件:2.4
        <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>