Я хочу выполнять команды оболочки Linux с помощью Maven. Вот что я пробовал:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>hostname</executable>
</configuration>
</plugin>
Ответы:
Вот что у меня работало:
источник
<configuration />
должно следовать после,<executions />
а не помещаться в него. Мне потребовалось много времени, чтобы найти эту простую синтаксическую ошибку. Вывод ошибок Maven действительно не так полезен.<workingDirectory>${basedir}/scripts/</workingDirectory>
в блоке конфигурации, вместо того,<executable>
чтобы указывать полный путь, также может быть хорошей идеейПроблема здесь в том, что я не знаю, чего ожидать . При ваших текущих настройках вызов плагина из командной строки будет работать:
Используется глобал
configuration
,hostname
команда выполняется (laptop
это мое имя хоста). Другими словами, плагин работает должным образом.Теперь, если вы хотите, чтобы плагин выполнялся как часть сборки , вы должны привязать цель к определенной фазе. Например, чтобы привязать его
compile
:А потом:
Обратите внимание, что вы можете указать
configuration
внутриexecution
.источник
mvn exec:exec
родительский объект, mvn запускает его во всех проектах многомодульной сборки, включая родительский. Но родительский pom не имеет конфигурации для плагина, который ожидает, чтоexecutable
будет определен, отсюда и сообщение об ошибке.configuration
внутриexecution
блока, он будет работать, если запущен как часть group (mvn install
), ноspecify the following: <configuration>
выдаст ошибку, если запустить напрямую сmvn exec:exec
.Решено. Проблема в том, что исполняемый файл в Linux работает по-другому. Если вы хотите запустить файл .sh, вы должны написать, как показано ниже. Напишите в pom.xml
источник
2 варианта:
npm start
с maven, вы можете добиться этого следующим образом:mvn exec:exec -Pstart-node
Для этого вам понадобится приведенный ниже раздел maven
npm install
вы можете сделать это с помощью:mvn install
И для этого вам понадобится следующий раздел:
источник
Спасибо! Томер Бен Дэвид. мне это помогло. поскольку я выполняю установку pip в демонстрационной папке, как вы упомянули, npm install
источник