Je veux exécuter des commandes shell Linux avec Maven. Voici ce que j'ai essayé:
<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>
Réponses:
Voici ce qui fonctionne pour moi:
la source
<configuration />
devrait suivre après<executions />
et ne pas y être placé. Il m'a fallu un certain temps pour trouver cette simple erreur syntaxique. La sortie d'erreur de Maven n'est vraiment pas si utile.<workingDirectory>${basedir}/scripts/</workingDirectory>
dans le bloc de configuration, au lieu de donner le chemin complet dans<executable>
pourrait également être une bonne idéeLe problème ici est que je ne sais pas à quoi on s'attend . Avec votre configuration actuelle, appeler le plugin sur la ligne de commande fonctionnerait simplement:
Le global
configuration
est utilisé, lahostname
commande est exécutée (laptop
c'est mon nom d'hôte). En d'autres termes, le plugin fonctionne comme prévu.Maintenant, si vous voulez qu'un plugin soit exécuté dans le cadre de la construction , vous devez lier un objectif sur une phase spécifique. Par exemple, pour le lier sur
compile
:Puis:
Notez que vous pouvez spécifier un à l'
configuration
intérieur d' un fichierexecution
.la source
mvn exec:exec
appelez sur le parent, mvn l'exécutera sur tous les projets de la construction multi-module, y compris le parent. Mais le pom parent n'a aucune configuration pour le plugin qui s'attend à ce que leexecutable
soit défini, d'où le message d'erreur.configuration
intérieur duexecution
bloc, cela fonctionnera s'il est exécuté dans le cadre d'un groupe (mvn install
), mais renvoie l'specify the following: <configuration>
erreur s'il est exécuté directement avecmvn exec:exec
.Résolu. Le problème est que l'exécutable fonctionne d'une manière différente sous Linux. Si vous souhaitez exécuter un fichier .sh, vous devez écrire de la manière ci-dessous. Écrivez-le dans pom.xml
la source
2 options:
npm start
avec maven, vous pouvez y parvenir avec ce qui suit:mvn exec:exec -Pstart-node
Pour cela, vous avez besoin de la section maven ci-dessous
npm install
vous pouvez le faire avec:mvn install
Et pour que cela fonctionne, vous aurez besoin de la section ci-dessous:
la source
Merci! Tomer Ben David. ça m'a aidé. comme je fais pip install dans le dossier de démonstration comme vous l'avez mentionné npm install
la source