当前位置: 首页 > 知识库问答 >
问题:

没有父pom.xml的spring-boot无法生成war打包

佴波鸿
2023-03-14
<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.0.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

我将这个更改(也只是这个更改)应用到示例中。此后再也不可能引发战争了。我收到以下错误消息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project gs-convert-jar-to-war: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

下面是修改后的pom.xml的完整列表:

<?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>org.springframework-sample</groupId>
    <artifactId>gs-convert-jar-to-war</artifactId>
    <version>0.1.0</version>
    <packaging>war</packaging>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>1.0.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
            </dependency>
    </dependencies>

    <properties>
        <start-class>hello.Application</start-class>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>http://repo.spring.io/libs-milestone</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>http://repo.spring.io/libs-milestone</url>
        </pluginRepository>
    </pluginRepositories>

</project>

有没有攻克难题的思路?

共有1个答案

韩嘉胜
2023-03-14

您删除了父级,因此丢失了它对WAR插件配置的声明。这里是:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

源代码请参阅此处。

请注意。对于Spring Boot2.0父级pom和更高版本(war插件版本不同),或者如果您使用最新的war插件,则不需要这样做。

 类似资料:
  • 我已经做了一个maven Spring boot(REST)项目,它有3个子模块(一、api二、实现和三、服务模块)。 主方法(@SpringBootApplication)位于项目的根目录中。RESTWeb服务在IDE中运行良好,但maven不允许我将此项目打包为war并部署到外部tomcat。 为了解决这个问题,我添加了一个新模块,并在其中添加了其他模块的依赖项,并将其打包为war(通过添加m

  • 我想用Maven创建一个不嵌入tomcat的war文件。这里是我的pom的相关部分 如果我运行mvn包,我会得到一个war,其中tomcat*.jar位于provided-lib文件夹中,但仍然位于lib-folder中。我读了build-tool-plugins-maven-packaging,但找不到有什么问题。 我知道一个主要的想法是将它作为一个应用程序来运行,无论我们的客户想要如何将它部署

  • 我是一个Spring的新蜜蜂,试图将gs-rest-service-complete导入到我的STS中,我可以导入,但在pom.xml中得到编译错误 无法传输工件org.springframework.boot:spring-boot-starter-parent:POM:1.2.3。release from/to spring-releases(https://repo.spring.io/li

  • 这是控制台:我搜索了overstack,但我只是添加了spring-boot-starter-data-jpa。 在此输入图像说明**

  • 我有一个用Spring Boot开发的REST API。 如果我从IDE运行它,它工作得很好。 C:\apache-tomcat-9.0.43\webapps 关闭了IDE。 然后启动Tomcat并再次访问以下url。 http://localhost:8080正确打开tomcat主页。 它还可以正确地生成\webapps下的app文件夹。

  • 我无法用我的spring-boot with jersey项目运行生成的jar文件。 我遇到的例外情况是: 当通过IDE(运行主类)或使用Spring-boot:run完成时,项目可以正常运行 以下是当前设置的详细信息: 包装: 依赖关系: 我的jersey配置(ResourceConfig)设置为扫描包 spring-boot-maven-plugin配置为:org.springframewor