AWS CodeDeploy没有这样的文件或目录ROOT.war

问题描述

我正在尝试使用AWS CodeStar创建Java Spring在线应用程序。我创建了一个新的CodeStar项目,代码正在构建,部署和正常运行。

我将项目复制到CodeStar项目文件夹中,并推送了代码。管道获取代码并正确构建了代码,但是Deploy部分的最后一步失败了。

enter image description here

当我查看详细信息时,我发现在EC2实例事件中失败是在安装步骤中完成的。

enter image description here

错误消息显示

No such file or directory - /opt/codedeploy-agent/deployment-root/dcda2f79-ce8e-40cc-80ee-f5d6478b7cd1/d-I4JUDJUB6/deployment-archive/target/ROOT.war

我已连接到EC2实例,并查看了指定的路径,实际上,在“ deployment-archive”文件夹中没有“ target”文件夹。所以我们知道问题出在哪里。

但是-由于管道在我推送代码后立即选择了代码本身,因此它应该自行处理。所以我真的不知道他们想要我什么。

有人知道如何解决这个问题吗?

解决方法

我发现问题出在pom.xml的构建设置中。最后,我只是复制了原始CodeStar默认项目的构建设置。以我为例:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
                    <warName>ROOT</warName>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>${junit.platform.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>${junit.jupiter.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </pluginManagement>
    <finalName>ROOT</finalName>
</build>

对于您而言,它的外观可能有所不同。但这对我有用。