Сохранять разрешения для файлов с ресурсами Maven: testResources - PullRequest
25 голосов
/ 29 июня 2011

Можно ли сохранить права доступа к файлу с ресурсами Maven: testResources?Мой пример использования - бинарный драйвер Selenium, который я помещаю в / src / test / resources, который я хотел бы использовать в своих тестах.Однако мой -rwxr-xr-x изменен на -rw-r--r-- в целевых / тестовых классах.

Ответы [ 2 ]

32 голосов
/ 29 июня 2011

Кажется, это ошибка в плагине ресурсов Maven

Если вы используете плагин сборки Maven, вы можете настроить разрешения для файлов там.

Если нет, вы можете обойти это.Вы можете сделать это через Ant, выполнив что-то вроде этого:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>process-test-classes</id>
            <phase>process-test-classes</phase>
            <configuration>
                <target>
                    <chmod file="target/test-classes/test.sh" perm="755"/>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
3 голосов
/ 14 июля 2015

Я добавил профиль, который активируется автоматически при запуске на Unix-машине. Он выполняет встроенный сценарий оболочки для рекурсивного принятия прав доступа ко всем файлам в папке к файлам с таким же именем в другой папке (см. Переменные SRC и DST). Для сценария требуются /bin/sh, а также find, xargs и chmod, которые должны существовать во всех современных системах.

    <profile>
        <id>unix</id>
        <activation>
            <os>
                <family>unix</family>
            </os>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>fix-resource-permissions</id>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <phase>process-test-resources</phase>
                            <configuration>
                                <executable>/bin/sh</executable>
                                <arguments>
                                    <argument>-c</argument>
                                    <argument>
                                        set -x

                                        SRC="${basedir}/src/test/resources"
                                        DST="${project.build.directory}/test-classes"

                                        find "$$SRC" -printf "%P\0" | xargs --verbose -0 -I {} chmod --reference="$$SRC/{}" -f "$$DST/{}"
                                    </argument>
                                </arguments>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
...