Плагин сборки Maven для выходной папки chmod - PullRequest
3 голосов
/ 17 мая 2011

Я пытаюсь использовать плагин maven-assembly для создания zip-файла моего JAR-проекта и всех библиотек, необходимых для его запуска:

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

Это работает и делает правильный почтовый индекс.

Затем флаг fileMode на dependencySet присваивает каждому элементу внутри LIB 755 CHMOD. Проблема в том, что сама папка LIB остается 777. Есть ли способ заставить папку LIB также получить 755?

Заставляя maven делать то, чего он не хочет, всегда огорчает: (

Ответы [ 3 ]

7 голосов
/ 16 октября 2012

Это действительно странно, но следующий фрагмент 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

4 голосов
/ 17 мая 2011

Сам не пробовал, поэтому я не могу сказать, работает ли он с целевым каталогом или просто каталогами, добавленными в целевой каталог, но вам действительно стоит попробовать

 <directoryMode>755</directoryMode>

это в документах

1 голос
/ 24 мая 2011

Я не думаю, что плагин maven-assembly-прямо сейчас может это сделать. Поэтому я только что внес изменения в скрипты bash ...

...