Actualmente estoy usando Maven para construir mi proyecto Rhino JavaScript, descargar bibliotecas dependientes y administrar el classpath en tiempo de ejecución. Soy capaz de ejecutar el punto de entrada de JavaScript usando el plugin de ejecución Maven, de la siguiente manera:¿Cómo se usa Maven classpath para ejecutar la clase principal de Java?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.mozilla.javascript.tools.shell.Main</mainClass>
<classpathScope>runtime</classpathScope>
<arguments>
<argument>path/to/entryPoint.js</argument>
</arguments>
</configuration>
</plugin>
Esto funciona bien, pero el problema es que el experto tarda unos 10 segundos sólo para empezar, que está a punto 10 veces más de lo que mi programa necesita para ejecutarse. ¿Hay una manera de cualquiera:
- mejorar el rendimiento del plugin de ejecución Maven de manera que se necesita menos tiempo para iniciar o
- exportar la ruta de clases que Maven utilizaría en tiempo de ejecución, por lo que sólo puedo empezar mi programa de un guion?
-o no parece afectar el rendimiento de inicio de maven, pero appassembler parece ser exactamente lo que estaba buscando con respecto a la segunda cláusula. – jbeard4
¿hay alguna forma de personalizar la salida del programa appassembler para especificar los argumentos predeterminados para pasar a la clase principal en el script generado? p.ej. path/to/entryPoint.js en la pregunta original. – jbeard4
No lo creo, pero podría escribir [un script de contenedor que invoca el generado] (http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/faq.html#ulimit). Alternativamente, podría empaquetar su propia secuencia de comandos de inicio, dado que (supongo) las rutas/rutas de clase no cambian realmente tan a menudo. –