SlideShare a Scribd company logo
LifeCycle Management for Clojure Development Clojure 开发的生命周期管理
About Me ,[object Object]
@Sunng
Tekelec, Nanjing
http://sunng.info/
http://github.com/sunng87
My Clojure Projects ,[object Object]
Lein-control / Clojure-Control
Geohash
Rage Viewer ,[object Object]
Agenda ,[object Object]
版本控制
IDE
开发
发布
部署
Agenda ,[object Object]
版本控制
IDE
开发
发布
部署
Build Tools ,[object Object]
Leiningen  ['laɪnɪŋən]
Cake
Maven
Gradle
Build - Lancet ,[object Object]
build.clj 以clojure语法替代Ant XML
作为Programming Clojure一书的例子
Build Tools - Leiningen ,[object Object]
基于Maven的依赖管理/共享Maven本地仓库
标准的项目骨架
基于插件的扩展机制 ,[object Object],[object Object],[object Object]
Build Tools - Leiningen (defproject clooj "0.1.18" :description "clooj, a small IDE for clojure" :main clooj.core :dependencies [[clojure "1.2.1"] [clojure-contrib "1.2.0"]])
Build Tools - Leiningen (defproject reddit.clj "0.2.0" :description "A reddit API wrapper for clojure" :dependencies [[org.clojure/clojure "1.2.1"],  [clj-http "0.1.3"], [org.clojure/clojure-contrib "1.2.0"]] :dev-dependencies [[lein-clojars "0.6.0"] [org.clojars.weavejester/autodoc "0.9.0" :exclusions [ org.clojure/clojure-contrib org.clojure/clojure]]])
Build Tools - Leiningen (defproject rageviewer "1.0.0-SNAPSHOT" :description "A rage comic viewer" :dependencies [[org.clojure/clojure "1.2.1"] [org.clojure/clojure-contrib "1.2.0"] [compojure "0.6.5"] [reddit.clj "0.1.1"] [clj-redis "0.0.12"]] :dev-dependencies [[lein-ring "0.4.5"] [lein-control "0.1.1"]] :ring {:handler rageviewer.core/app :init  rageviewer.core/app-init})
Build Tools - Leiningen ,[object Object]
dependencies 和 dev-dependencies
依赖拷贝到项目目录( Ant 方式)
支持可运行的插件(例如 swank-clojure )
Build Tools - Cake ,[object Object]
快速启动 ,[object Object],[object Object],[object Object]
Build Tools - Maven ,[object Object]
Build Tools - Gradle ,[object Object],apply plugin: "clojure" repositories { mavenCentral() clojarsRepo() } dependencies { compile 'org.clojure:clojure:1.2.1' }
Build Tools - Wrap Up ,[object Object]
大量插件 ,[object Object]

More Related Content

What's hot

工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程Simon Su
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
認識 Docker
認識 Docker認識 Docker
認識 Docker
協哲 蔡
 
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
Jun Liu
 
向jquery学习
向jquery学习向jquery学习
向jquery学习
jay li
 
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
均民 戴
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Joseph Chiang
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
 
React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?
昱安 周
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
Bo-Yi Wu
 
Android gradle 从入门到gg 0
Android gradle 从入门到gg 0Android gradle 从入门到gg 0
Android gradle 从入门到gg 0
Jun Liu
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
 

What's hot (20)

工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 
認識 Docker
認識 Docker認識 Docker
認識 Docker
 
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
 
向jquery学习
向jquery学习向jquery学习
向jquery学习
 
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 
Android gradle 从入门到gg 0
Android gradle 从入门到gg 0Android gradle 从入门到gg 0
Android gradle 从入门到gg 0
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 

Similar to Clojure cnclojure-meetup

Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
National Cheng Kung University
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
 
Swagger
SwaggerSwagger
Swagger
Yan-ren Tsai
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharing
gavin_lee
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011Ching Yi Chan
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
 
Odoo Development
Odoo DevelopmentOdoo Development
Odoo Development
TsungWei Hu
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
 
Django step0
Django step0Django step0
Django step0
永昇 陳
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Alex Su
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
Philip Zheng
 
打造你專屬的Xcode plugin
打造你專屬的Xcode plugin打造你專屬的Xcode plugin
打造你專屬的Xcode plugin
Yuhua Chen
 
CodeIgniter 2.0.X
CodeIgniter 2.0.XCodeIgniter 2.0.X
CodeIgniter 2.0.X
Bo-Yi Wu
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
Bo-Yi Wu
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
azole Lai
 
Kubernetes device plugins
Kubernetes device pluginsKubernetes device plugins
Kubernetes device plugins
ssuser75c76a2
 
docker intro
docker introdocker intro
docker introkoji lin
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门
modou li
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 

Similar to Clojure cnclojure-meetup (20)

Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
 
Swagger
SwaggerSwagger
Swagger
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharing
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
 
Odoo Development
Odoo DevelopmentOdoo Development
Odoo Development
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
 
Django step0
Django step0Django step0
Django step0
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
打造你專屬的Xcode plugin
打造你專屬的Xcode plugin打造你專屬的Xcode plugin
打造你專屬的Xcode plugin
 
CodeIgniter 2.0.X
CodeIgniter 2.0.XCodeIgniter 2.0.X
CodeIgniter 2.0.X
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
 
Kubernetes device plugins
Kubernetes device pluginsKubernetes device plugins
Kubernetes device plugins
 
docker intro
docker introdocker intro
docker intro
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 

Clojure cnclojure-meetup