Quiero ejecutar comandos de shell de Linux con Maven. Esto es lo que probé:
<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>
Respuestas:
Esto es lo que me ha funcionado:
fuente
<configuration />
debería seguir<executions />
y no colocarse allí. Me tomó bastante tiempo encontrar este simple error sintáctico. La salida de error de Maven realmente no es tan útil.<workingDirectory>${basedir}/scripts/</workingDirectory>
en el bloque de configuración, en lugar de proporcionar la ruta completa,<executable>
también podría ser una buena ideaEl problema aquí es que no sé qué se espera . Con su configuración actual, invocar el complemento en la línea de comando simplemente funcionaría:
Se
configuration
usa el global ,hostname
se ejecuta el comando (laptop
es mi nombre de host). En otras palabras, el complemento funciona como se esperaba.Ahora, si desea que un complemento se ejecute como parte de la compilación , debe vincular un objetivo en una fase específica. Por ejemplo, para enlazarlo en
compile
:Y entonces:
Tenga en cuenta que puede especificar un
configuration
dentro de unexecution
.fuente
mvn exec:exec
en el padre, mvn lo ejecutará en todos los proyectos de la compilación de múltiples módulos, incluido el padre. Pero el pom principal no tiene ninguna configuración para el complemento que esperaexecutable
que se defina, de ahí el mensaje de error.configuration
dentro delexecution
bloque, funcionará si se ejecuta como parte de un grupo (mvn install
) pero arrojará elspecify the following: <configuration>
error si se ejecuta directamente conmvn exec:exec
.Resuelto. El problema es que el ejecutable funciona de manera diferente en Linux. Si desea ejecutar el archivo .sh, debe escribir de la siguiente manera. Escríbalo en pom.xml
fuente
2 opciones:
npm start
con maven, puedes lograrlo con lo siguiente:mvn exec:exec -Pstart-node
Para eso necesitas la siguiente sección de maven
npm install
, puede hacerlo con:mvn install
Y para que eso funcione, necesitaría la siguiente sección:
fuente
¡Gracias! Tomer Ben David. Me ayudó. como estoy haciendo pip install en la carpeta de demostración como mencionaste npm install
fuente