Chcę wykonywać polecenia powłoki Linuksa za pomocą Mavena. Oto, czego próbowałem:
<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>
Odpowiedzi:
Oto, co działa dla mnie:
źródło
<configuration />
powinno następować po niej<executions />
i nie powinno być w niej umieszczane. Zajęło mi trochę czasu znalezienie tego prostego błędu składniowego. Wyjście błędów Mavena naprawdę nie jest tak pomocne.<workingDirectory>${basedir}/scripts/</workingDirectory>
w bloku konfiguracyjnym, zamiast podawać pełną ścieżkę,<executable>
również może być dobrym pomysłemProblem polega na tym, że nie wiem, czego się oczekuje . Przy obecnej konfiguracji wywołanie wtyczki w wierszu poleceń po prostu działałoby:
configuration
Używany jest globalny ,hostname
polecenie jest wykonywane (laptop
to moja nazwa hosta). Innymi słowy, wtyczka działa zgodnie z oczekiwaniami.Teraz, jeśli chcesz, aby wtyczka była wykonywana jako część kompilacji , musisz powiązać cel z określoną fazą. Na przykład, aby go powiązać
compile
:I wtedy:
Zauważ, że możesz określić
configuration
wewnątrzexecution
.źródło
mvn exec:exec
na rodzica, mvn uruchomi go na wszystkich projektach kompilacji wielomodułowej, łącznie z rodzicem. Ale macierzysty pom nie ma żadnej konfiguracji dla wtyczki, która oczekujeexecutable
zdefiniowania elementu, stąd komunikat o błędzie.configuration
wnętrzeexecution
bloku, zadziała, jeśli zostanie uruchomiony jako część grupy (mvn install
), ale zgłosispecify the following: <configuration>
błąd, jeśli zostanie uruchomiony bezpośrednio zmvn exec:exec
.Rozwiązany. Problem w tym, że plik wykonywalny działa inaczej w Linuksie. Jeśli chcesz uruchomić plik .sh, powinieneś napisać jak poniżej. Napisz to w pom.xml
źródło
2 opcje:
npm start
z mavenem, możesz to osiągnąć za pomocą poniższych:mvn exec:exec -Pstart-node
W tym celu potrzebujesz poniższej sekcji maven
npm install
możesz to zrobić za pomocą:mvn install
Aby to zadziałało, potrzebujesz poniższej sekcji:
źródło
Dzięki! Tomer Ben David. pomogło mi. jak robię instalację pip w folderze demonstracyjnym, jak wspomniałeś, instalacja npm
źródło