如何使用gradle在eclipse中启动新的后端web项目?

du7egjpx  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(522)

我最近转向后端,我必须为web应用程序创建后端。它将具有以下配置:
ide:eclipse
构建工具:gradle(或maven)
雅加达ee 9
rest实施:泽西岛3号
雅加达servlet:5.0
服务器:Tomcat10
语言:Java11
动态web模块版本:5.0
我尝试在eclipse中使用动态web项目和gradle项目创建,并阅读了这里的指南,但无法正确获得所有功能。我想要一个关于如何做到这一点的分步指南。
此外,我不确定是使用gradle还是maven来实现这一点。我有gradle的经验,因为我制作过android应用程序,但泽西岛的所有教程都使用maven。

vlf7wbxs

vlf7wbxs1#

无论你使用maven还是gradle,这都无关紧要:两者都能胜任。然而,我建议暂时不要使用雅加达EE9:eclipse插件在处理它时仍然有一些怪癖。e、 您可以将eclipse项目的ServletAPI设置为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>

在项目的上下文菜单中运行configure>addgradlenature(我假设您已经安装了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>refresh gradle project,
eclipse现在应该在其构建路径中有gradle的依赖项。。。,
您可以创建一个简单的jax rs资源:

@Path(value = "/hello")
public class Hello {

   @GET
   public String greet() {
      return "Hello world!";
   }
}

您可以使用“运行>在服务器上运行”来运行项目。您的资源将在 http://localhost:8080/<project_name>/hello 网址。

相关问题