Spring Boot Maven插件未创建可执行jar
我的POM如下。但是当我运行“mvn clean package”时,并没有创建可执行JAR。然而,当我删除dependencyManagement元素并添加springboot作为父POM时,一切都正常 我错过了什么Spring Boot Maven插件未创建可执行jar,spring,maven-3,spring-boot,Spring,Maven 3,Spring Boot,我的POM如下。但是当我运行“mvn clean package”时,并没有创建可执行JAR。然而,当我删除dependencyManagement元素并添加springboot作为父POM时,一切都正常 我错过了什么 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>sample-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.2.0.M2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.example
示例引导
0.0.1-快照
org.springframework.boot
spring启动依赖项
1.2.0.2平方米
聚甲醛
进口
org.springframework.boot
SpringBootStarterWeb
春季快照
http://repo.spring.io/snapshot
真的
春季里程碑
http://repo.spring.io/milestone
春季快照
http://repo.spring.io/snapshot
春季里程碑
http://repo.spring.io/milestone
org.springframework.boot
springbootmaven插件
这是因为在第二种情况下,插件是在父级中配置的。如果您想管理自己的插件(即不使用父插件),则必须显式配置spring boot插件(以及其他插件)。您需要自己配置spring boot maven插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.1.8.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.springframework.boot
springbootmaven插件
1.1.8.发布
重新包装
显然,设置自己的插件版本。现在,如果您运行mvn安装或mvn包,您将生成可执行JAR。当您使用Spring boot依赖项管理(没有Spring boot starter父项)时,您仍然可以保留依赖项管理的好处,但不能保留插件管理的好处 这意味着您需要提供完整的插件(包括版本和其他内容) 给定的是创建可执行jar文件的pom.xml 观看视频:
根据SpringBoot文档。 该插件重写您的清单,特别是它管理主类和开始类条目,因此如果默认值不起作用,您必须在那里配置它们(而不是在jar插件中)。清单中的主类实际上由引导插件的布局属性控制 根据SpringBoot文档,以下更改对我有效
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>YourSpringBootJavaClass</mainClass>
<layout>WAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>yourwarfileName</finalName>
</build>
org.springframework.boot
springbootmaven插件
你的SpringBootJavaClass
战争
重新包装
yourwarfileName
一年多以来,我一直在为一个项目构建一个可运行的JAR(Maven POM),最近发生了一些变化,JAR不再包含任何依赖JAR。最终,更新到最新的Spring启动版本(在撰写本文时为我提供了1.5.2.release)解决了这个问题 Spring Boot将确保您的应用程序在运行mvn包时作为测试启动。确保在此过程中没有出现故障。您是否有文档链接来确认这一点?这解决了我的错误。我在
中有spring boot maven插件
,同时在
中也有一些依赖项。即使在插件上指定了repackage
,我仍然没有得到一个可执行的jar。将springbootmaven插件
移回
允许我再次获得一个可执行jar
$ mvn clean
$ mvn install
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>YourSpringBootJavaClass</mainClass>
<layout>WAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>yourwarfileName</finalName>
</build>