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

AWS CodeDeploy No such file or directory ROOT.war

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

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

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

错误消息说:

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>

对于您的情况,它可能看起来有所不同。但这对我有用。