Java 如何使用Gradle在Eclipse中启动新的后端web项目?

Java 如何使用Gradle在Eclipse中启动新的后端web项目?,java,eclipse,gradle,tomcat,jersey,Java,Eclipse,Gradle,Tomcat,Jersey,我最近转向后端,我必须为web应用程序创建后端。它将具有以下配置: IDE:Eclipse 构建工具:Gradle(或Maven) 雅加达EE 9 REST实施:泽西岛3号 雅加达Servlet:5.0 服务器:Tomcat10 语言:Java11 动态Web模块版本:5.0 我尝试在Eclipse中使用动态Web项目和Gradle项目并通过阅读指南来创建,但无法正确获得所有功能。我想要一个关于如何做到这一点的分步指南 此外,我不确定是使用Gradle还是Maven来实现这一点。我有使用Gr

我最近转向后端,我必须为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。

无论你使用Maven还是Gradle,这都不重要:两者都可以。然而,我建议暂时不要使用雅加达EE9:Eclipse插件在处理它时仍然有一些怪癖。例如,您可以将Eclipse项目的ServletAPI设置为5.0,但Eclipse将拒绝将其部署到服务器上

要开始使用Jersey,您只需:

  • 创建一个动态Web项目(版本4.0)并创建一个
    Web.xml
    ,如下所示:
  • 
    格雷德尔球衣
    javax.ws.rs.core.Application
    javax.ws.rs.core.Application
    /*
    
  • 在项目的上下文菜单中运行Configure>addgradlenature(我假设您已经安装了Buildship插件)
  • 创建包含以下内容的
    build.gradle
    文件:
  • 插件{
    “战争”
    }
    存储库{
    mavenCentral()
    }
    依赖关系{
    实现组:“org.glassfish.jersey.containers”,名称:“jersey container servlet”,版本:“2.34”
    实现组:“org.glassfish.jersey.inject”,名称:“jersey-hk2”,版本:“2.34”
    }
    eclipse.wtp.facet{
    //更改动态Web模块方面的版本
    方面名称:“jst.web”,版本:“4.0”
    def oldJstWebFacet=facets.findAll{
    it.name=='jst.web'&&it.version=='2.4'
    }
    面。移除所有面(旧JSTwebFacet)
    //添加JAX-RS(RESTWeb服务)方面
    方面名称:“jst.jaxrs”,版本:“2.1”
    }
    
  • 在项目的上下文菜单中,运行Gradle>Refresh Gradle project
  • Eclipse现在应该在其构建路径中有Gradle的依赖项
  • 您可以创建一个简单的JAX-RS资源:
  • @Path(value=“/hello”)
    公共课你好{
    @得到
    公共字符串{
    返回“你好,世界!”;
    }
    }
    
  • 您可以使用“运行>在服务器上运行”来运行项目。您的资源将位于
    http://localhost:8080//hello
    URL

  • 谢谢虽然当我使用
    web.xml
    版本时,我得到了错误
    没有为servlet javax.ws.rs.core.Application指定servlet类
    ,但是当我使用如下注释版本时,它工作了。一种配置类型与另一种配置类型相比有哪些优点?我也使用了Jersey 3.0.2,但我在文档中看到2.34是最新的。我们应该使用Jersey 3还是Jersey 2?我刷新Gradle项目时发生的另一件事是
    部署描述符
    JAX-WS Web服务
    ,它们出现在Explorer中的项目下拉列表下。为什么会发生这种情况,以及如何将它们取回?我的例子是Jersey 2.34和Servlet API 4.0:正如我之前提到的,Eclipse在使用Jakarta EE 9时仍然有一些怪癖。Jersey 3.0代表雅加达EE 9(
    Jakarta.ws.rs
    ),而Jersey 2.x代表雅加达EE 8(
    javax.ws.rs
    )。Tomcat 10是Jakarta EE 9,而Tomcat 9是Jakarta EE 8。有关因调用Refresh Gradle项目而导致的项目方面的更改,请参阅。您需要向
    build.gradle
    文件添加一些配置。