我见过这个问题,但答案并不能完全解释这项技术。
在服务器上运行 maven 后,我从目标目录运行我的应用程序。
我有一个文件夹(/src/main/webapp/WEB-INF/scripts),在运行 maven 后,它会被复制到目标目录(/target/[project]/WEB-INF/scripts)。
我需要确保此目录中的所有文件(递归)都获得可执行权限。
没有蚂蚁我怎么能做到这一点?
您可以尝试将程序集插件放入预打包阶段并将文件复制到 target/classes/... 文件夹(我不确定文件夹的确切名称)并在复制期间通过程序集插件,您可以更改权限。战争插件将拾取文件并将它们打包到战争中。我不确定这是否完美。我从来没有尝试过。
您可以在 pom.xml 的“prepare-package”阶段使用“exec-maven-plugin”和“chmod”可执行文件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${org.codehaus.mojo.version}</version>
<executions>
<execution>
<id>chmod</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>chmod</executable>
<arguments>
<argument>+x</argument>
<argument>${project.build.directory}/[project]/WEB-INF/scripts/myscript.sh</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
它对我有用。我想将 exec 权限放在从源复制到目标/类的二进制文件上。