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

Spring boot应用程序从azure开发操作部署到appengine

徐奇
2023-03-14

我可以制作 Azure 操作管道,但我的问题是,我已将代码签入存储库,而我们不应该在其中签入应用程序属性文件。

这意味着在部署时,我应该必须从某个安全的地方下载应用程序属性文件,并在部署到应用程序引擎之前构建我的Spring启动应用程序。

因此,到目前为止,我所做的是,在运行时将我的应用程序属性文件下载到azure agent中。我将属性文件传递到maven build命令中,但是没有成功。[注意:我已经搜索了很多,阅读了很多答案,也申请了,但都没有用]

我使用的命令行:

mvn-f myapp-springboot-api/pom.xml-Dspring-boot.run.jvmArguments="-Dspring.config.location=file:/home/username/application.properties"清包appEngine:部署

我也试过

mvn-f是myapp和springbootapi/pom。xml--spring.config.location=file:/home/username/application。appengine中干净包的属性:部署

这也没有锻炼。

另外,我尝试通过pom传递整个属性文件位置.xml

pom。xml更改:

<properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>1.1.1.RELEASE</spring-cloud.version>
    <property.file.location>${property.file.location}</property.file.location>
</properties>
<build>
<plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0-alpha-1</version>
                <configuration>
                    <files>
                        <file>${property.file.location}</file>
                    </files>
                </configuration>
           </plugins>
</build>

比我试图建造的还要多:

mvn-f myapp-spring boot-API/POM . XML-d property . file . location = "/home/username/application . properties "清理包appengine:deploy

而且,我无法加载定义外部属性文件。

提前致谢,请帮你帮助,非常感谢。

共有1个答案

宫坚
2023-03-14

您正在使用的命令实际上不会将外部属性文件传递给应用程序引擎(因为它存在于不同的服务器上),并且仅限于正在打包部署的正在运行的maven进程。

因此,如果您在构建之前已将属性文件复制到外部代理上,我将只替换已签入源代码管理的默认文件。

例如,您的构建步骤如下:

  1. 下载属性文件
  2. 覆盖:
mv /home/username/application.properties myapp-springboot-api/src/main/resources/application.properties
mvn -f myapp-springboot-api/pom.xml clean package appengine:deploy

因此,现在您编译和部署的jar文件将包含您的新属性文件,最近推出的替代方案是使用Azure应用配置之类的东西。

如果您不想执行其他命令,也可以使用Maven Resources插件为您执行复制。

 类似资料:
  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • 如何使用VSTS版本将war文件部署到运行Tomcat的Azure Web应用程序?我在VSTS设置中有一个CI/CD管道,在提交代码时进行构建,然后在构建完成时发布新的war文件并将其推送到Azure。问题是,war文件被部署到\site\wwwroot\webapps,而不是\site\wwwroot\bin\apache-tomcat-8.5.24\webapps,需要将其作为应用程序拉入t

  • 是否有更好的方法使用Azure DevOps而不是不可变映像将web应用程序(托管在IIS windows上)部署到Azure Scaleset?我假设对于每次部署,如果管道需要创建映像,那么创建映像和部署将花费太多时间,尤其是在需要部署热修复程序的情况下。 如果部署组使用azure Scaleset,是否有人尝试过?

  • 我已经构建了一个Springboot应用程序,其中包括AngLuar5。我有一个gradle构建脚本,它将angular文件加载到我的springboot项目中,这些文件位于springboot项目的resources/static下。当我启动我的应用程序时,angular的路由不再工作,我得到了 错误:无法匹配任何路由。URL段:“访问” 我的项目结构: 如果我打字 www.mysite.com

  • 我无法让我的Spring Boot站点在Azure Web实例上响应。我遵循了Java应用程序说明和上传说明。IIS服务器似乎正在接收请求,但战争中的servlet没有响应。根据留档,有几个问题。特别是,web.config应该部署到www root,并指定java路径和转发端口。我相信我已经涵盖了这些基础——我的web.config贴在下面。 我确实尝试过从市场上部署tomcat服务器,效果很好