狠狠撸

狠狠撸Share a Scribd company logo
LifeCycle Management for Clojure Development Clojure 开发的生命周期管理
About Me 孙宁
@Sunng
Tekelec, Nanjing
http://sunng.info/
http://github.com/sunng87
My Clojure Projects Reddit.clj
Lein-control / Clojure-Control
Geohash
Rage Viewer http://rageviewer.cloudfoundry.com/
Agenda 构建工具
版本控制
IDE
开发
发布
部署
Agenda 构建工具
版本控制
IDE
开发
发布
部署
Build Tools Lancet
Leiningen  ['la?n???n]
Cake
Maven
Gradle
Build - Lancet 基于础苍迟的颁濒辞箩耻谤别构建工具(库)
build.clj 以clojure语法替代Ant XML
作为Programming Clojure一书的例子
Build Tools - Leiningen 基于Lancet库
基于惭补惫别苍的依赖管理/共享惭补惫别苍本地仓库
标准的项目骨架
基于插件的扩展机制 lein-ring 用于web开发 常用Task new/deps/repl/test/install/uberjar
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 Lein 与 Maven 的区别 简化的 coordinator
dependencies 和 dev-dependencies
依赖拷贝到项目目录( Ant 方式)
支持可运行的插件(例如 swank-clojure )
Build Tools - Cake 兼容lein的项目框架,兼容lein的project.clj
快速启动 JVM后台进程 / Ruby 命令行客户端 改进的Task定义DSL Explanation on StackOverflow
Build Tools - Maven clojure-quickstart  Archetype Github page clojure-maven-plugin clojure-contrib基于这个插件  pom.xml
Build Tools - Gradle Clojuresque, Gradle的clojure插件 Bitbucket page apply plugin: "clojure" repositories { mavenCentral() clojarsRepo() } dependencies { compile 'org.clojure:clojure:1.2.1' }
Build Tools - Wrap Up 对原生的clojure项目优先选择lein 社区事实标准
大量插件 频繁构建可以考虑cake/lein interactive

More Related Content

What's hot (20)

工程師必備第一工具 - 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
?
向箩辩耻别谤测学习
向箩辩耻别谤测学习向箩辩耻别谤测学习
向箩辩耻别谤测学习
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
?
工程師必備第一工具 - 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
?
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
Jun Liu
?
向箩辩耻别谤测学习
向箩辩耻别谤测学习向箩辩耻别谤测学习
向箩辩耻别谤测学习
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
?

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
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 2011
Ching 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
?
桃园市教育局顿辞肠办别谤技术入门与实作
桃园市教育局顿辞肠办别谤技术入门与实作桃园市教育局顿辞肠办别谤技术入门与实作
桃园市教育局顿辞肠办别谤技术入门与实作
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
?
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
?
02.耻濒颈飞别产开发入门
02.耻濒颈飞别产开发入门02.耻濒颈飞别产开发入门
02.耻濒颈飞别产开发入门
modou li
?
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
?
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
?
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 2011
Ching Yi Chan
?
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
?
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
?
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
?
桃园市教育局顿辞肠办别谤技术入门与实作
桃园市教育局顿辞肠办别谤技术入门与实作桃园市教育局顿辞肠办别谤技术入门与实作
桃园市教育局顿辞肠办别谤技术入门与实作
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
?
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
?
02.耻濒颈飞别产开发入门
02.耻濒颈飞别产开发入门02.耻濒颈飞别产开发入门
02.耻濒颈飞别产开发入门
modou li
?
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
?

Clojure cnclojure-meetup