在不使用 Gradle/Maven 的情况下创建 Java REST 应用程序 JAR?
Create a Java REST Application JAR without using Gradle/Maven?
使用 Gradle
我知道在 Spring Boot
嵌入式 Tomcat
服务器中创建 运行 fat jar
的方法是:
1. Gradle clean build bootRun
我想知道如何仅使用 command line
手动创建 fat jar
以便创建和 运行 与上面完全相同的 jar?
我知道要创建一个 运行 非常简单的 java
应用程序,它是:
javac myApp.java
java myApp
但是如何创建一个fat jar
包含所有项目dependencies然后运行呢?不使用像 gradle
或 maven
?
这样的工具
基本上,您可以使用指定 main() 位置的清单来破坏 class(es)。对于名为 Hello 的 classic "Hello World" class,清单如下所示...
Manifest-Version: 1.0
Main-Class: Hello
Class-Path: .
你会像这样构建它...
$ jar cvmf MANIFEST.MF Hello.jar Hello.class
added manifest
adding: Hello.class(in = 415) (out= 285)(deflated 31%)
然后像这样执行...
$ java -jar Hello.jar
Hello World
您可以对具有 jar 依赖项(包括嵌入式 Tomcat)的更复杂的应用程序执行相同的操作,但您需要将所有依赖的 jar 解压缩到一个目录中,并将其包含在 jar 中。像 Gradle 这样的构建工具可以使这更容易。
使用 Gradle
我知道在 Spring Boot
嵌入式 Tomcat
服务器中创建 运行 fat jar
的方法是:
1. Gradle clean build bootRun
我想知道如何仅使用 command line
手动创建 fat jar
以便创建和 运行 与上面完全相同的 jar?
我知道要创建一个 运行 非常简单的 java
应用程序,它是:
javac myApp.java
java myApp
但是如何创建一个fat jar
包含所有项目dependencies然后运行呢?不使用像 gradle
或 maven
?
基本上,您可以使用指定 main() 位置的清单来破坏 class(es)。对于名为 Hello 的 classic "Hello World" class,清单如下所示...
Manifest-Version: 1.0
Main-Class: Hello
Class-Path: .
你会像这样构建它...
$ jar cvmf MANIFEST.MF Hello.jar Hello.class
added manifest
adding: Hello.class(in = 415) (out= 285)(deflated 31%)
然后像这样执行...
$ java -jar Hello.jar
Hello World
您可以对具有 jar 依赖项(包括嵌入式 Tomcat)的更复杂的应用程序执行相同的操作,但您需要将所有依赖的 jar 解压缩到一个目录中,并将其包含在 jar 中。像 Gradle 这样的构建工具可以使这更容易。