在没有依赖项的情况下构建spring boot jar文件的最简单方法是什么? 基本上我应该能够将依赖jar文件保存在一个单独的文件夹中。
目前我正在使用spring boot maven插件,但是,它会创建一个包含所有依赖项的Fat jar文件。
答案 0 :(得分:3)
spring-boot-maven-plugin有重新打包选项,可以将依赖项放入其中(制作超级jar)
您可以禁用重新打包或重新打包.jar与其他分类器[2]
一起使用答案 1 :(得分:1)
根本不要使用spring-boot-maven-plugin
并使用JAR打包。这样,构建就不会将依赖关系打包到JAR中。
答案 2 :(得分:0)
将pom.xml中的构建条目替换为
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependency_jar</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
在目标文件夹中,将包含一个包含所有依赖项jar的Dependency_jar文件夹,以及“ project_name.jar”( fat jar )和“ project_name.jar.original” (代码)
答案 3 :(得分:0)
以下是我在How to Create an Executable JAR with Maven上找到的解决方案, 您只需要将它们放在您的插件中即可。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/libs
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>libs/</classpathPrefix>
<mainClass>
org.baeldung.executable.ExecutableMavenJar
</mainClass>
</manifest>
</archive>
</configuration>
</plugin>