我们希望发布一些帮助脚本(shell脚本)作为应用程序之战的一部分。不幸的是,我们的构建系统(maven)似乎丢弃了所有文件的权限,并且脚本最终没有设置可执行位。
甚至可以这样做吗? .war格式是否支持可执行文件?如果是:如何告诉maven保留权限/在过程中的某个地方修复它们?
答案 0 :(得分:4)
问题更可能是底层zip格式不支持这些位。
如果使用脚本名称显式执行/ bin / sh,则不需要设置执行位。
另请注意,您的程序(知道脚本的位置)可以在启动之前调用“chmod + x script.sh”。
答案 1 :(得分:1)
AFAIK,无法在war / jar中设置文件权限(但是,当使用Maven Assembly Plugin创建项目的二进制分发存档时,这是可能的,但这是另一个故事)。
所以,我要么:
java.io.tmpdir
目录,设置执行位,然后从那里执行~~~ 答案 2 :(得分:1)
您还可以直接从Java代码中检查并设置可执行标志。见http://docs.oracle.com/javase/6/docs/api/java/io/File.html#setExecutable%28boolean,%20boolean%29
答案 3 :(得分:0)
在WAR之外提供可执行文件。从WAR中调用它们。