Maven3.6.0 for Mac環(huán)境配置及第一個(gè)REST服務(wù)

一、 配置maven環(huán)境

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

選擇第一個(gè)Binary tar.gz archive (Linux、MacOs)下載安裝包

2.解壓安裝包到需要的目錄下

3.在終端中拖入剛解壓的文件,查看路徑

image.png

4.在終端中輸入open ~/.zshrc 進(jìn)入到環(huán)境變量配置文件

image.png

添加紅圈中兩行export

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

maven 路徑為剛才下載包路徑

5.使修改的環(huán)境變量生效

source ~/.zshrc

6.重新打開終端

mvn -v

看到maven信息即配置maven環(huán)境成功。

二、第一個(gè)rest服務(wù)

1.使用archetype創(chuàng)建項(xiàng)目

Archetype是一個(gè)Maven項(xiàng)目模板工具包。通過Archetype我們可以快速搭建Maven項(xiàng)目。

  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 制定原型版本,這個(gè)版本與Jersey的版本一致
groupId:項(xiàng)目組ID
artifactId:工件ID
package:包名
等一會(huì) 直到出現(xiàn) BUID SUCCESS 即成功


2.運(yùn)行服務(wù)

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

該命令啟動(dòng)了REST服務(wù),端口是8080,我們可以隨時(shí)通過回車鍵停止這個(gè)服務(wù)。同時(shí)還提供了WADL。

3.訪問服務(wù)

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

得到Got it!

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

curl -i 或者--include 得到相應(yīng)信息,第一行包含HTTP協(xié)議版本和狀態(tài)碼,接下來是HTTP HEAD 信息,最后是 HTTP BODY信息。

image.png

要想獲得更多的cURL請(qǐng)求響應(yīng)信息,可以用-v參數(shù)。

4.分析項(xiàng)目

源代碼中,包括資源類MyResource 和 MyResourceTest。
在MyResource中,@Path定義了資源路徑,@Get定義了get方法getIt(),@Produces 中定義了響應(yīng)的類型為普通的字符串,示例如下:

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

相應(yīng)地,MyResourceTest中實(shí)現(xiàn)了對(duì)getIt()方法的測(cè)試,示例如下:

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

5.單元測(cè)試

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

image.png

jersey-quickstart-grizzly2原型提供的模板代碼,使用了main函數(shù),并在其中啟動(dòng)了Grizzly的HttpServer.這是典型的java SE 形式的REST應(yīng)用。更多情況下,我們希望得到的是一個(gè)以war包形式部署到servlet容器的輕量級(jí)java EE項(xiàng)目,下一篇將介紹第一個(gè)servlet容器服務(wù)的項(xiàng)目。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,692評(píng)論 19 139
  • 原文鏈接:http://www.dropwizard.io/1.2.0/docs/getting-started....
    Lance_Xu閱讀 1,170評(píng)論 0 0
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,285評(píng)論 6 342
  • 簡(jiǎn)介 概述 Maven 是一個(gè)項(xiàng)目管理和整合工具 Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架 Maven...
    閩越布衣閱讀 4,544評(píng)論 6 39
  • Maven編譯代碼的相關(guān)命令 第一、main目錄下的主代碼編寫完畢后,使用Maven進(jìn)行編譯,在項(xiàng)目根目錄下運(yùn)行命...
    加油小杜閱讀 1,442評(píng)論 0 2

友情鏈接更多精彩內(nèi)容