Исполняемые файлы в файле войны - PullRequest
5 голосов
/ 06 июля 2010

Мы хотели бы отправить несколько вспомогательных сценариев (сценариев оболочки) в рамках войны приложений. К сожалению, похоже, что наша система сборки (maven) отбрасывает разрешения для всех файлов, и сценарии заканчиваются без установленного исполняемого бита.

Возможно ли это сделать? Поддерживает ли формат .war исполняемые файлы? Если да: как можно сказать maven оставить права доступа / исправить их где-то в процессе?

Ответы [ 4 ]

4 голосов
/ 06 июля 2010

Скорее всего, проблема в том, что эти биты не поддерживаются в базовом zip-формате.

Бит выполнения не нужно устанавливать, если вы явно выполняете / bin / sh с именем скрипта.

Также обратите внимание, что ваша программа, которая знает местоположение скрипта, может вызвать "chmod + x script.sh" перед запуском.

1 голос
/ 06 июня 2014

Вы также можете проверить и установить исполняемый флаг прямо из вашего Java-кода.Смотри http://docs.oracle.com/javase/6/docs/api/java/io/File.html#setExecutable%28boolean,%20boolean%29

1 голос
/ 06 июля 2010

AFAIK, невозможно установить права доступа к файлам в war / jar (однако это возможно при использовании подключаемого модуля Maven Assembly для создания бинарного дистрибутивного архива вашего проекта, но это другая история).

Итак, я бы либо:

  • поставил (как бинарный дистрибутив) и запустил эти скрипты вне web-приложения ~ или ~
  • считал файлы изпуть к классу, запишите их в каталог java.io.tmpdir, установите бит выполнения, а затем выполните их оттуда ~ или ~
  • Используйте решение @ Thorbjørn (не пробовал, но, думаю, это будет работать);Мне просто интересно, откуда вы выполняете эти сценарии.
0 голосов
/ 06 июля 2010

Поставьте исполняемые файлы за пределы WAR.Позвоните им из ВОЙНЫ.

...