如何使用 Gradle 在 Eclipse 中启动一个新的后端 Web 项目?
How to start a new backend web project in Eclipse with Gradle?
我最近转向后端,我必须为 Web 应用程序创建后端。它将具有以下配置:
- IDE:日食
- 构建工具:Gradle(或 Maven)
- 雅加达 EE 9
- REST 实施:泽西岛 3
- 雅加达 Servlet:5.0
- 服务器:Tomcat10
- 语言:Java11
- 动态网络模块版本:5.0
我尝试在 Eclipse 中使用 Dynamic Web Project 和 Gradle Project 创建并阅读指南 here 但无法正确获取所有功能。我想要有关如何执行此操作的分步指南。
此外,我不确定是否为此使用 Gradle 或 Maven。我有 Gradle 的经验,因为我制作了 Android 应用程序,但 Jersey 的所有教程都使用 Maven。
使用 Maven 还是 Gradle 并不重要:两者都可以。但是我建议暂时不要使用 Jakarta EE 9:Eclipse 插件在处理它时仍然有一些怪癖。例如。您可以将 Eclipse 项目的 Servlet API 设置为 5.0,但 Eclipse 将拒绝将其部署到服务器上。
要使用 Jersey 启动,您只需要:
- 创建动态 Web 项目(4.0 版)并创建一个
web.xml
像这样:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>gradle-jersey</display-name>
<!-- No class name, Jersey will pick it up -->
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
- 在项目的上下文菜单中运行 配置>添加gradle自然(我假设你已经安装了Buildship插件),
- 创建一个
build.gradle
文件,内容为:
plugins {
id 'war'
}
repositories {
mavenCentral()
}
dependencies {
implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '2.34'
implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '2.34'
}
eclipse.wtp.facet {
// Change the version of the Dynamic Web Module facet
facet name: 'jst.web', version: '4.0'
def oldJstWebFacet = facets.findAll {
it.name == 'jst.web' && it.version == '2.4'
}
facets.removeAll(oldJstWebFacet)
// Add the JAX-RS (REST Web Services) facet
facet name: 'jst.jaxrs', version: '2.1'
}
- 在项目的上下文菜单中 运行 Gradle > 刷新 Gradle 项目,
- Eclipse 现在应该在其 构建路径中具有 Gradle 的依赖项...,
- 您可以创建一个简单的 JAX-RS 资源:
@Path(value = "/hello")
public class Hello {
@GET
public String greet() {
return "Hello world!";
}
}
- 您可以在服务器上使用 "运行 > 运行" 来 运行 项目。您的资源将在
http://localhost:8080/<project_name>/hello
URL. 下
我最近转向后端,我必须为 Web 应用程序创建后端。它将具有以下配置:
- IDE:日食
- 构建工具:Gradle(或 Maven)
- 雅加达 EE 9
- REST 实施:泽西岛 3
- 雅加达 Servlet:5.0
- 服务器:Tomcat10
- 语言:Java11
- 动态网络模块版本:5.0
我尝试在 Eclipse 中使用 Dynamic Web Project 和 Gradle Project 创建并阅读指南 here 但无法正确获取所有功能。我想要有关如何执行此操作的分步指南。
此外,我不确定是否为此使用 Gradle 或 Maven。我有 Gradle 的经验,因为我制作了 Android 应用程序,但 Jersey 的所有教程都使用 Maven。
使用 Maven 还是 Gradle 并不重要:两者都可以。但是我建议暂时不要使用 Jakarta EE 9:Eclipse 插件在处理它时仍然有一些怪癖。例如。您可以将 Eclipse 项目的 Servlet API 设置为 5.0,但 Eclipse 将拒绝将其部署到服务器上。
要使用 Jersey 启动,您只需要:
- 创建动态 Web 项目(4.0 版)并创建一个
web.xml
像这样:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>gradle-jersey</display-name>
<!-- No class name, Jersey will pick it up -->
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
- 在项目的上下文菜单中运行 配置>添加gradle自然(我假设你已经安装了Buildship插件),
- 创建一个
build.gradle
文件,内容为:
plugins {
id 'war'
}
repositories {
mavenCentral()
}
dependencies {
implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '2.34'
implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '2.34'
}
eclipse.wtp.facet {
// Change the version of the Dynamic Web Module facet
facet name: 'jst.web', version: '4.0'
def oldJstWebFacet = facets.findAll {
it.name == 'jst.web' && it.version == '2.4'
}
facets.removeAll(oldJstWebFacet)
// Add the JAX-RS (REST Web Services) facet
facet name: 'jst.jaxrs', version: '2.1'
}
- 在项目的上下文菜单中 运行 Gradle > 刷新 Gradle 项目,
- Eclipse 现在应该在其 构建路径中具有 Gradle 的依赖项...,
- 您可以创建一个简单的 JAX-RS 资源:
@Path(value = "/hello")
public class Hello {
@GET
public String greet() {
return "Hello world!";
}
}
- 您可以在服务器上使用 "运行 > 运行" 来 运行 项目。您的资源将在
http://localhost:8080/<project_name>/hello
URL. 下