Java 如何使用Gradle在Eclipse中启动新的后端web项目?
我最近转向后端,我必须为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
- IDE:Eclipse
- 构建工具:Gradle(或Maven)
- 雅加达EE 9
- REST实施:泽西岛3号
- 雅加达Servlet:5.0
- 服务器:Tomcat10
- 语言:Java11
- 动态Web模块版本:5.0
此外,我不确定是使用Gradle还是Maven来实现这一点。我有使用Gradle的经验,因为我已经制作了Android应用程序,但泽西岛的所有教程都使用Maven。无论你使用Maven还是Gradle,这都不重要:两者都可以。然而,我建议暂时不要使用雅加达EE9:Eclipse插件在处理它时仍然有一些怪癖。例如,您可以将Eclipse项目的ServletAPI设置为5.0,但Eclipse将拒绝将其部署到服务器上 要开始使用Jersey,您只需:
Web.xml
,如下所示:
格雷德尔球衣
javax.ws.rs.core.Application
javax.ws.rs.core.Application
/*
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”
}
@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
文件添加一些配置。