我以前在sbt:sbt-start-script(https://github.com/sbt/sbt-start-script)中使用过这个插件。 maven有同等的工具吗?我想要一些我可以在命令行上运行的东西,它将使用正确的类路径执行我的java程序。 sbt-start-script通过为我生成一个shell脚本来执行此操作,我在命令行上执行这样的脚本:
./target/start
在该shell脚本中,它基本上有一个对
的调用java -cp xxxx example.Main
其中xxx是我机器上的完整类路径。
我知道我可以使用maven直接用
执行我的java程序mvn -Dexec.mainClass="example.Main"
但是它在与maven相同的JVM中执行。我有兴趣用自己的jvm开始我的程序。
我不想将整个项目及其所有依赖项打包到一个可执行jar文件中,我宁愿使用maven知道的类路径。
答案 0 :(得分:1)
好的,我想我可以手工编写这个脚本做正确的事情:
#!/bin/bash
# directory of this script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mvn -o -f $DIR/pom.xml -q dependency:build-classpath -Dmdep.outputFile="$DIR/target/classpath.txt"
java -cp $DIR/target/classes:`cat $DIR/target/classpath.txt` example.Main $@
exitcode=$?
exit $exitcode
这似乎有效,但我必须手工编写。每次构建时,sbt-start-script都会生成类似这样的脚本。如果有人有任何更好的解决方案,我仍然感兴趣。