致敬读者
博主相关
文章前言
以下是所有能够将Java项目(特别是Spring Boot项目)打包成JAR包的方式,按工具分类罗列:
可参考文章:Java项目打包(Maven命令打包)指南(操作简单)
maven-jar-plugin
pom.xml
中包含 maven-jar-plugin
(默认已集成)。mvn clean package
target/-.jar
spring-boot-maven-plugin
)<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
mvn clean package
target/-.jar
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-shade-pluginartifactId>
<version>3.2.4version>
<executions>
<execution>
<phase>packagephase>
<goals><goal>shadegoal>goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.MainClassmainClass>
transformer>
transformers>
configuration>
execution>
executions>
plugin>
mvn clean package
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-assembly-pluginartifactId>
<version>3.3.0version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependenciesdescriptorRef>
descriptorRefs>
<archive>
<manifest>
<mainClass>com.example.MainClassmainClass>
manifest>
archive>
configuration>
<executions>
<execution>
<phase>packagephase>
<goals><goal>singlegoal>goals>
execution>
executions>
plugin>
mvn clean package
jar
任务build.gradle
):jar {
manifest {
attributes 'Main-Class': 'com.example.MainClass'
}
}
./gradlew clean build
build/libs/-.jar
bootJar
)build.gradle
):plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
./gradlew clean bootJar
build/libs/-.jar
build.gradle
):plugins {
id 'com.github.johnrengelman.shadow' version '7.1.2'
}
shadowJar {
manifest {
attributes 'Main-Class': 'com.example.MainClass'
}
}
./gradlew clean shadowJar
javac -d ./out src/main/java/com/example/*.java
MANIFEST.MF
:Main-Class: com.example.MainClass
Class-Path: libs/dependency1.jar libs/dependency2.jar
jar cvfm app.jar MANIFEST.MF -C ./out .
File > Project Structure > Artifacts > + > JAR > From modules with dependencies
。Build > Build Artifacts
。可参考文章:Java项目打包(使用IntelliJ IDEA打包Java项目)
Export > Java > Runnable JAR File
。build.xml
):<target name="jar" depends="compile">
<jar destfile="build/app.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="com.example.MainClass"/>
manifest>
jar>
target>
ant jar
spring-boot-maven-plugin
(Maven)或 bootJar
(Gradle)。maven-jar-plugin
或 jar
任务。文末寄语