如何使用maven运行任何应用程序引擎模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用maven运行任何应用程序引擎模块相关的知识,希望对你有一定的参考价值。
我有一个模块“Module1”,我可以使用下面的命令执行(在项目文件夹中):
- $ mvn appengine:run
现在我有另一个模块“Module2”,我也可以使用相同的上一个命令执行。
我需要同时运行两个模块。我怎样才能做到这一点?
根据您对目标appengine:run
的使用,我了解您正在使用本地开发服务器测试您的应用程序。通过查看the documentation for appengine:run
,您可以使用标志端口在不同的端口中启动两个独立的Development Server实例。
您可以使用以下命令定义该标志:
mvn appengine:run -Dapp.devserver.port=<PORT_NUMBER>
开发服务器中的默认端口号为8080,因此您可以使用端口8080作为Module1,然后使用不同的端口,例如模块2的8082。这样,您可以移动到两个服务所在的目录,并使用不同的端口号运行这两个命令,然后您就可以分别在localhost:8080
和localhost:8082
中访问它们。
更新(可能是更好的解决方案)
实际上,正如in the documentation所述:
如果项目的根目录仅包含您的服务,则可以使用单个Maven命令部署所有这些服务。
这适用于生产环境(App Engine)和开发服务器中的部署。因此,如果您正确配置应用程序,则可以使用单个mvn appengine:run
命令在同一个开发服务器实例中启动这两个服务(它们仍将在不同的端口中启动)。
因此,为了配置Java GAE应用程序及其所有服务,您可以遵循相同的想法(与此主题无关)migration guide。为此,当您在默认服务的pom.xml
文件中配置com.google.cloud.tools»appengine-maven-plugin时,必须添加<services>
标记,包括应用程序中的所有服务,从默认值开始服务:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<deploy.project>PROJECT_NAME</deploy.project>
<deploy.version>PROJECT_VERSION</deploy.version>
<services>
<!-- Default service -->
<service>
${project.build.directory}/${project.name}-${project.version}
</service>
<!-- One for each additional service -->
<service>
${project.parent.basedir}/SERVICE_NAME/target/SERVICE_ARTIFACT-${project.version}
</service>
</services>
</configuration>
</plugin>
一旦完成,您的应用程序将检测与其相关的所有服务,并且您将能够使用单个Maven命令同时处理所有这些服务,即mvn appengine:deploy
将部署所有服务,mvn appengine:run
将启动具有所有服务的开发服务器在里面。对于Development Server的情况,您可以访问localhost:PORT/_ah/admin
中的Server Admin,然后转到Modules选项卡以查找每个正在运行的服务的URL:
我希望这两种选择中的一种(尽管我会选择第二种)对你的用例很有用。
以上是关于如何使用maven运行任何应用程序引擎模块的主要内容,如果未能解决你的问题,请参考以下文章
如何在集成了 Flutter 模块的 Android 应用上运行 UI 测试?