Maven3.6.0 for Mac环境配置及第一个REST服务

一、 配置maven环境

1.下载maven http://maven.apache.org/download.cgi
image.png

选择第一个Binary tar.gz archive (Linux、MacOs)下载安装包

2.解压安装包到需要的目录下

3.在终端中拖入刚解压的文件,查看路径

image.png

4.在终端中输入open ~/.zshrc 进入到环境变量配置文件

image.png

添加红圈中两行export

export M2_HOME=/Users/dahaoren/Maven/apache-maven-3.6.0
export PATH=$PATH:$M2_HOME/bin

maven 路径为刚才下载包路径

5.使修改的环境变量生效

source ~/.zshrc

6.重新打开终端

mvn -v

看到maven信息即配置maven环境成功。

二、第一个rest服务

1.使用archetype创建项目

Archetype是一个Maven项目模板工具包。通过Archetype我们可以快速搭建Maven项目。

  mvn archetype:generate \
 -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
 -DarchetypeGroupId=org.glassfish.jersey.archetypes \
 -DinteractiveMode=false \
 -DgroupId=my.restful \
 -DartifactId=my-first-service \
 -Dpackage=my.restful \
 -DarchetypeVersion=2.22.1

teractiveMode=false代表无需交互
archetypeVersion 制定原型版本,这个版本与Jersey的版本一致
groupId:项目组ID
artifactId:工件ID
package:包名
等一会 直到出现 BUID SUCCESS 即成功


2.运行服务

cd my-first-service
mvn package
image.png

mvn exec:java

信息: Started listener bound to [localhost:8080]
12月 09, 2018 10:00:44 下午 org.glassfish.grizzly.http.server.HttpServer start
信息: [HttpServer] Started.
Jersey app started with WADL available at http://localhost:8080/myapp/application.wadl
Hit enter to stop it...

image.png

该命令启动了REST服务,端口是8080,我们可以随时通过回车键停止这个服务。同时还提供了WADL。

3.访问服务

curl http://localhost:8080/myapp/myresource

得到Got it!

curl -i http://localhost:8080/myapp/myresource

curl -i 或者--include 得到相应信息,第一行包含HTTP协议版本和状态码,接下来是HTTP HEAD 信息,最后是 HTTP BODY信息。

image.png

要想获得更多的cURL请求响应信息,可以用-v参数。

4.分析项目

源代码中,包括资源类MyResource 和 MyResourceTest。
在MyResource中,@Path定义了资源路径,@Get定义了get方法getIt(),@Produces 中定义了响应的类型为普通的字符串,示例如下:

@Path("myresource")
public class MyResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it!";
    }
}

相应地,MyResourceTest中实现了对getIt()方法的测试,示例如下:

@Test
    public void testGetIt() {
        String responseMsg = target.path("myresource").request().get(String.class);
        assertEquals("Got it!", responseMsg);
    }

5.单元测试

(my-first-service目录下)
mvn test

image.png

jersey-quickstart-grizzly2原型提供的模板代码,使用了main函数,并在其中启动了Grizzly的HttpServer.这是典型的java SE 形式的REST应用。更多情况下,我们希望得到的是一个以war包形式部署到servlet容器的轻量级java EE项目,下一篇将介绍第一个servlet容器服务的项目。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容