如何自动创建批处理/shell脚本来运行Java控制台应用程序?

2022-09-04 20:44:19

我有一个 Java 命令行应用程序,并希望创建一个 Ant* 构建脚本,该脚本将创建成功运行应用程序所需的所有批处理/shell 脚本,包括所有类路径变量。我需要它来执行以下操作:

  1. 为 Linux/Unix 创建一个 shell 脚本文件,为 Windows/DOS 创建一个批处理文件
  2. 添加所有类路径依赖项(从 Maven 或直接使用 Eclipse 中的构建路径)
  3. 添加任何必要的样板 sh/bat 代码来运行(ENV 变量、JAVA_HOME等)

我在这里只找到了部分答案。

但是我还没有找到任何东西可以完成每个构建都涉及的基本而琐碎的任务。

免责声明 - 最初的问题是Ant / Maven,但我更愿意看看是否可以在Ant中完成。


答案 1

在Maven中,最好的解决方案是maven-appassembler-plugin,它处理shell脚本/批处理文件的创建。结合maven-assembly,您可以创建一个tar.gz或zip存档,其中包含所需的一切。


答案 2

Maven 知道 dependency:build-classpath 目标,它完成了大部分的脏工作:

mvn dependency:build-classpath -DoutputFile=cp.txt

您可以在shell脚本中使用这个生成的文件来创建java类路径(我知道,它并不多,但它会让你入门)。

或者,您可以使用 exec-maven-plugin 从当前 maven 上下文启动主类。像这样的东西可以做到:

mvn compile org.codehaus.mojo:exec-maven-plugin:1.2:java \
    -Dexec.mainClass=com.yourcompany.YourClass

推荐