Maven e instalar um programa de linha de comando

rwallace:

Tendo escrito um programa de linha de comando em Java, usando Maven como o sistema de compilação, o que é a maneira recomendada para ir de lá para ter o programa disponível como um comando?

Suponha que o programa é chamado Foo. No foodiretório eu posso correr mvn packagepara gerar target/foo-1.0-SNAPSHOT.jar, o que por sua vez pode ser executado com java -cp target/foo-1.0-SNAPSHOT.jar foo.Main %*mas esse comando é muito tempo para esperar que os usuários digitem. Eu preciso chegar ao ponto onde digitando foona linha de comando irá executar o programa. mvn installnão; ele apenas copia o JAR para o repositório maven local.

O que é a maneira recomendada para fazer um programa disponível como um comando?

rwallace:

I terminou apenas escrever um simples script 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)

Acho que você gosta

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