【问题标题】:Is there an equivalent of sbt-start-script for maven?maven 是否有等效的 sbt-start-script ?
【发布时间】:2014-02-19 07:44:44
【问题描述】:

我以前使用过这个插件来实现 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 知道的类路径。

【问题讨论】:

    标签: java maven


    【解决方案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 每次构建时都会生成一个类似这样的脚本。如果有人对此有更好的解决方案,我仍然很感兴趣。

    【讨论】:

    • 删除我的答案以删除重复,因为您实现了相同的方式并添加了详细信息,+1
    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2014-09-29
    • 2011-03-10
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多