问题描述
作为应用程序战争的一部分,我们希望提供一些帮助程序脚本(shell脚本)。 不幸的是,看起来我们的构建系统(maven)放弃了所有文件的权限,并且脚本最终没有设置可执行位。
甚至有可能做到这一点? .war格式是否支持可执行文件? 如果是:如何告诉Maven在过程中保留权限/将其修复?
1楼
问题很可能是基础zip格式不支持这些位。
如果您使用脚本名称显式执行/ bin / sh,则无需设置执行位。
另请注意,您的程序-知道脚本的位置-可以在启动前调用“ chmod + x script.sh”。
2楼
您还可以直接从Java代码检查并设置可执行标志。 请参阅
3楼
AFAIK,无法在war / jar中设置文件权限(但是,当使用Maven组件插件创建项目的二进制分发归档文件时,这是可能的,但这是另一回事了)。
因此,我要么:
- 交付(作为二进制发行版)并在webapp外部运行这些脚本?或?
-
从类路径中读取文件,将它们写入
java.io.tmpdir
目录,设置执行位,然后从那里执行它们 - 使用@Thorbj?rn解决方案(没有尝试过,但我想它会起作用); 我只是想知道从哪里执行这些脚本。
4楼
在WAR之外提供可执行文件。 从WAR内致电给他们。