java - 如何从 IntelliJ 获取运行本地服务器的 Maven 项目

标签 java maven google-app-engine intellij-idea jetty

了解 Java 开发的早期阶段。我在 IntelliJ 中创建了一个新的 Maven 项目(未使用原型(prototype))。

到目前为止,我已经添加了一个名为 src/main/webapp 的文件夹,并在其中放置了一个 index.jsp 文件,其中包含一些在屏幕上打印“hello world”的示例代码。

然后我检查了一些示例 pom.xml 文件并尝试创建我自己的文件,至少可以让我在本地运行我的应用程序:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <groupId>romac</groupId>
    <artifactId>connect-parent</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <jdk.version>1.8</jdk.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>romac-connect</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.11.v20180605</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <stopKey>STOP</stopKey>
                    <stopPort>8005</stopPort>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

然后我不确定如何使用 Jetty 或 Google Cloud Tools 运行我的项目。我正在为 Google App Engine Standard 开发,所以哪个更适合用作本地服务器?我如何让它从 IntelliJ UI 运行?

最佳答案

由于您是针对 App Engine 标准进行开发,因此使用 Google Cloud Tools for IntelliJ 是正确的,它提供了 App Engine 特定的本地开发服务器。请尝试以下操作:

首先确保您运行的是最新版本的插件:18.6.1(截至撰写本文时)。您可以在 Settings -> Plugins -> Google Cloud Tools 下的插件管理器中验证这一点。

在您的 src/main/webapp 目录中,创建一个 WEB-INF 文件夹(如果还没有的话)。在该文件夹中,创建一个名为 appengine-web.xml 的文件(App Engine 标准应用程序所需的配置文件)。使用以下起始 xml 填充该文件:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <threadsafe>true</threadsafe>
    <runtime>java8</runtime>
</appengine-web-app>

执行此操作后,插件应检测到您正在使用 App Engine 标准项目并弹出框架支持添加菜单 - 接受提示。如果您没有看到它,您可以转到工具 -> Google Cloud 工具 -> 添加 App 引擎支持 -> App 引擎标准 并选择您的模块。

在此之后,应该为您创建本地运行和部署运行配置,让您可以在本地运行和调试您的应用,然后将其部署到 GCP App Engine。

请注意,即将发布的版本将修复自动生成 Maven 和 Gradle 项目的应用引擎配置文件(通过上述工具菜单)。这将允许您跳过手动步骤。现在您应该能够按照上面的描述手动完成。

关于java - 如何从 IntelliJ 获取运行本地服务器的 Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417562/

相关文章:

java - 如何获得有关函数返回 null 引起的 NPE 的警告?

java - LWJGL 2.9.0 GL20.glUniformMatrix4 导致随机卡顿

java - 如何为 esri Geometry-api 构建 jar 文件

google-app-engine - 如果一个用户撤消访问权限,则对多个用户的批量请求会失败

python - Jinja2 html按钮: Catch POST on different pages

java - 如何将用户输入从 EditText 保存到要在不同 Activity 上使用的变量

java - 未找到源 : Adding the source attachment to view source code

java - 构建时传输 maven-metadata.xml 失败的警告和解决依赖关系的错误

java - Spring Maven + IntelliJ 和 404

google-app-engine - 如何将 Helidon 应用程序部署到 Google Cloud App Engine?