Maven y la instalación de un programa de línea de comandos

rwallace:

Después de haber escrito un programa de línea de comandos en Java, utilizando Maven como el sistema de construcción, ¿cuál es la forma recomendada para ir desde allí a tener el programa está disponible como un comando?

Supongamos que el programa se llama Foo. En el foodirectorio puedo correr mvn packagepara generar target/foo-1.0-SNAPSHOT.jar, lo que puede a su vez ser ejecutado con java -cp target/foo-1.0-SNAPSHOT.jar foo.Main %*pero ese comando es demasiado tiempo para esperar a los usuarios escribir. Necesito llegar al punto en el que escribir fooen la línea de comandos se ejecute el programa. mvn installno lo hace; Simplemente copia el tarro al repositorio Maven local.

¿Cuál es la forma recomendada para hacer un programa disponible como un comando?

rwallace:

Acabé escribiendo un simple script en Python: https://github.com/russellw/ayane/blob/master/build.py

#!/usr/bin/python3
import subprocess
import os   

subprocess.check_call("mvn package", shell=True)
if os.name == "nt":
    with open("ayane.bat", "w") as f:
        f.write("java -ea -jar %s\\target\\ayane-3.0-SNAPSHOT.jar %%*\n" % os.getcwd())
else:
    with open("ayane", "w") as f:
        f.write("#!/bin/sh\n")
        f.write('java -ea -jar %s/target/ayane-3.0-SNAPSHOT.jar "$@"\n' % os.getcwd())
    st = os.stat("ayane")
    os.chmod("ayane", st.st_mode | 0o111)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=206697&siteId=1
Recomendado
Clasificación