Мы создаем приложение, которое будет генерировать дочерние приложения машинного обучения.Каждый из этих модулей будет использовать один и тот же базовый код, включая сценарии запуска;единственное, что меняется, - это вопрос, который они задают.
Когда я собираю и внедряю дочерние модули, я вижу, что у запускаемых сценариев, которые они наследуют, нет необходимых разрешений на выполнение.
Пока чтоЯ попытался установить разрешения с помощью <filemode>
, чтобы установить их в плагине сборки, как описано здесь .
Вот как выглядит мой файл assembly.xml:
<fileSet>
<directory>${project.parent.basedir}/src/main/resources/child/</directory>
<excludes>
<exclude>data/questions.csv</exclude>
</excludes>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
</fileSet>
<fileSet>
<directory>${project.basedir}/src/main/resources/child/</directory>
<includes>
<include>**/*</include>
</includes>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
</fileSet>
<fileSet>
<directory>${project.basedir}/src/main/resources/child/bin</directory>
<outputDirectory>/bin</outputDirectory>
<includes>
<include>*.sh</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
Структура моего проекта на моей локальной машине выглядит следующим образом:
+parentName
|
|
+--+child1
| |
| +--+src
| |
| +--+target--+child1.tar
| |
| +--pom.xml
|
+--+child2
|
+--+src
|
+--+assembly--+assembly.xml
|
+--+resources--+parent--+bin--+start.sh
|
+--pom.xml
СтруктураВыходной файл:
+child.tar
|
+--+child
|
+--+bin
|
+--start.sh
Как я уже сказал, я ожидаю, что разрешение в выходном файле start.sh будет исполняемым, но оно имеет только разрешения на чтение.Я не уверен, что это связано с тем, что он передается в дочерний модуль при сборке.