生活随笔
收集整理的這篇文章主要介紹了
android gradle自定义钉钉群提醒
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/122970426
本文出自【趙彥軍的博客】
今天接到一個需求,寫一個 gradle 小插件,在執行完某個 gradle 任務后,向釘釘群聊機器人發送一條消息,并自動 @所有人。
首先在釘釘群中創建智能機器人,并獲取到 Webhook 鏈接
有了 Webhook 鏈接就可以給機器人發消息了。下面我們來自定義 gradle 工具。
在項目的跟目錄創建 dingding.gradle
dingding.gradle 代碼如下:
import groovy.json.JsonBuilder
import groovy.json.JsonOutputdef dingDingUrl
= "https://oapi.dingtalk.com/robot/send?access_token=14xxxxx"ext
.postDingMsg
= { String artifactId
, String version
, String userName
, String tips
->String allTips
= "#### 新版本發布提醒(${artifactId})\n" +'> 項目:' + userName
+ '發布了最新版本:' + version
+ '\n\n' +'> 更新說明:' + tips
+ '\n\n'postAll(dingDingUrl
, allTips
)
}
def
postAll(url
, tips
) {JsonBuilder builder
= new JsonBuilder()builder
{msgtype
'markdown'markdown
{title
'二方庫發布提醒'text tips
}at
{isAtAll
true}}String data
= JsonOutput.prettyPrint(builder
.toString())postDingDing(url
, data
)
}
def
postDingDing(urlString
, msg
) {if (msg
== null) {return}HttpURLConnection conn
= nullOutputStream outputStream
= nulltry {if (conn
== null) {URL url
= new URL(urlString
)conn
= (HttpURLConnection) url
.openConnection()}if (conn
!= null) {conn
.setReadTimeout(15000)conn
.setConnectTimeout(15000)conn
.setDoOutput(true)conn
.setUseCaches(false)conn
.setRequestProperty("Content-Type", "application/json; charset=utf-8")}if (conn
== null) {return null}if (msg
!= null && msg
.length() > 0) {DataOutputStream dataOutputStream
= new DataOutputStream(conn
.getOutputStream())byte[] t
= msg
.getBytes("utf-8")dataOutputStream
.write(t
)dataOutputStream
.flush()dataOutputStream
.close()int res
= conn
.getResponseCode()println res
if (res
== 200) { InputStream input
= conn
.getInputStream()StringBuffer sb
= new StringBuffer()int ss
while ((ss
= input
.read()) != -1) {sb
.append((char) ss
)}} else {println("發送消息失敗----" + conn
.getResponseCode())}}} catch (EOFException e
) {e
.printStackTrace()} catch (IOException e
) {e
.printStackTrace()} finally {if (outputStream
!= null) {try {outputStream
.close()} catch (IOException e
) {e
.printStackTrace()}}if (conn
!= null) {conn
.disconnect()}}
}
在 app 的 build.gradle 下添加 gradle 依賴
apply from
: '../dingding.gradle'
afterEvaluate
{def mergeResourcesTask
= tasks
.findByName("assembleRelease")mergeResourcesTask
.finalizedBy(postDingDingTask
)
}
task postDingDingTask
{doLast
{def artifactId
= "release"def version
= "1.2.0"def userName
= "小張"def tip
= "修復空指針bug https://www.baidu.com"postDingMsg(artifactId
, version
, userName
, tip
)}
}
下面我們執行一下 assembleRelease 任務,就可以看到消息提醒了
好了,結束下班。
總結
以上是生活随笔為你收集整理的android gradle自定义钉钉群提醒的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。