是否有相当于maven的sbt-start-script?

时间:2014-02-19 07:44:44

标签: java maven

我以前在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知道的类路径。

1 个答案:

答案 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都会生成类似这样的脚本。如果有人有任何更好的解决方案,我仍然感兴趣。