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>
对于您的情况,它可能看起来有所不同。但这对我有用。
我正在尝试使用 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>
对于您的情况,它可能看起来有所不同。但这对我有用。