Android Studio與SVN版本控制程序的協(xié)作使用指南
AndroidStudio 的SVN 安裝和使用方法與我以前用的其他IDE 都有很大差別,感覺(jué)特麻煩,網(wǎng)上相關(guān)資料很少,貌似現(xiàn)在 Git 比較流行,之前有用過(guò) github 但是他只能是開源項(xiàng)目免費(fèi),下面總結(jié)最近自己安裝和使用 SVN 的一些經(jīng)驗(yàn)總結(jié):
如果遇到 ignore 或其他設(shè)置無(wú)效等意外情況,可以嘗試重啟 androidstudio 或執(zhí)行下 svn 的 update 試試
一、安裝配置:
以前使用 ZendStudio 等等都是直接安裝插件就可以了,但這里不行,需要自己獨(dú)立安裝帶有 command line 功能的 SVN 客戶端,我使用的是TortoiseSVN,據(jù)說(shuō) 1.7 之后開始支持 command line 模式,我現(xiàn)在用的是 1.8.5 版本
如圖,安裝時(shí)必須自定義選擇 command line 否則不會(huì)安裝的
安裝完成后,打開 IDE 的 setting 配置面板:
如上圖路徑 Version Control 下的 Subersion 設(shè)置:
Use Command Line Client 選擇瀏覽到你本地安裝 TortoiseSVN 的 svn.exe 文件路徑,如下圖:(注意輸入框最右側(cè)有個(gè)瀏覽的按鈕,有可能沒(méi)顯示出來(lái),拉伸窗口即可見(jiàn))
配置好之后,安裝即完成
二、導(dǎo)入、簽出 SVN
這個(gè)比較簡(jiǎn)單的:
在 CVS 菜單下 有個(gè) Import into Version Control 選擇 svn 就行了
簽出操作也差不多,也可以在新建項(xiàng)目中從 svn 簽出并生成項(xiàng)目
另外:最下面一個(gè)欄目 Browse VCS Repository 可以瀏覽遠(yuǎn)程SVN 服務(wù)器上的文件并進(jìn)行刪除等操作
三、Ignore 指定忽略文件或目錄
AndroidStudio 的 Setting 面板中配置的 ignore 似乎沒(méi)什么效果,
下面先看看忽略掉的目錄的顯示效果(比較暗的黃綠顏色)
在 Setting 中的配置,主要忽略的目錄和文件:(雖然感覺(jué)這里的設(shè)置不起作用,但還是設(shè)置下吧)
系統(tǒng)默認(rèn)有兩三個(gè)文件和目錄,我自己添加的 .gradle .idea build 目錄 我覺(jué)得這三個(gè)目錄不應(yīng)該跟隨 svn,每次編譯時(shí)每個(gè)人本地環(huán)境是不一樣的,而且我之前遇到 build 和 idea 下面有個(gè)library 文件老是沖突,每次更新一大堆,所以去掉了。
通過(guò) TortoiseSVN 來(lái)添加忽略:
對(duì)于更新和提交
這兩個(gè)小按鈕很方面操作,向上的綠色是commit ,向下的藍(lán)色 是 update。
四、使用Gradle插件自動(dòng)填寫SVN號(hào),并發(fā)布(拷貝)到指定目錄
Gradle是一個(gè)依賴管理工具,它的GitHub項(xiàng)目地址如下:
https://github.com/Goddchen/Android-Gradle-Examples/tree/master/Gradle%20Library%20Projects
安裝布置很方便,這里就不再多說(shuō)了,下面我們具體來(lái)看
svn號(hào):
1、classpath增加依賴:
classpath group: 'org.tmatesoft.svnkit', name: 'svnkit', version: '1.8.11'
(可查找下最新的版本)
2、在主項(xiàng)目(app的模塊目錄)下的build.gradle中增加:
android {....} def getSvnRevision() { ISVNOptions options = SVNWCUtil.createDefaultOptions(true); SVNClientManager clientManager = SVNClientManager.newInstance(options); SVNStatusClient statusClient = clientManager.getStatusClient(); SVNStatus status = statusClient.doStatus(projectDir, false); SVNRevision revision = status.getRevision(); def svnNum = revision.getNumber(); println("Svn version: " + svnNum); println("============"); return svnNum; }
注意下,revision要本地更新后才能取得。status中還有其他的數(shù)據(jù),例如最后提交等。需要的可自行更改。
App 版本號(hào):
App版本號(hào)可以在 defaultConfig 中直接配,但有時(shí)候?qū)懺?manifest.中會(huì)不容易忘。
def getVerName() { String manifestText = file("AndroidManifest.xml").getText(); def matcherVersion = Pattern.compile("android:versionName=\"([\\d.]+).*\"").matcher(manifestText); if (matcherVersion.find()) { def verName = matcherVersion.group(1); println("============"); println("App version: " + verName); return verName; } else { throw new GradleException('Not find versionName in AndroidManifest'); } }
注意下 AndroidManifest 的路徑,是相對(duì)與當(dāng)前的 build.gradle的,標(biāo)準(zhǔn)的AS創(chuàng)建是在 src/main/AndroidManifest.xml
使用 可以直接 = ,或者用 ${getVerName()}
編譯后輸出路徑:
這有很多中做法,一種是build后拷貝,一種是直接修改variants的輸出路徑,這里暫時(shí)先提供后面一種:
buildTypes { release { // ..... applicationVariants.all { variant -> if ("release".equals(variant.buildType.name)) {// Only Release variant.outputs.each { output -> def targetDir = "D:/App"; // 目標(biāo)路徑 output.outputFile = new File(targetDir, "App_${getVerName()}_${getSvnRevision()}.apk"); println(output.outputFile) } } } } }
相關(guān)文章
Android音頻開發(fā)之音頻采集的實(shí)現(xiàn)示例
本篇文章主要介紹了Android音頻開發(fā)之音頻采集的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04為Android系統(tǒng)添加config.xml 新配置的設(shè)置
這篇文章主要介紹了為Android系統(tǒng)添加config.xml 新配置的設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法
這篇文章主要介紹了Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法,實(shí)例分析了Android編程中GPS定位的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2015-12-12Android獲取內(nèi)置sdcard跟外置sdcard路徑
這篇文章主要介紹了Android獲取內(nèi)置sdcard跟外置sdcard路徑的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09Android編程實(shí)現(xiàn)打勾顯示輸入密碼功能
這篇文章主要介紹了Android編程實(shí)現(xiàn)打勾顯示輸入密碼功能,涉及Android控件布局及屬性相關(guān)操作技巧,需要的朋友可以參考下2017-02-02Android中Xposed框架篇---修改系統(tǒng)位置信息實(shí)現(xiàn)自身隱藏功能實(shí)例
本篇文章介紹了Android中Xposed框架的使用,詳細(xì)的介紹了修改系統(tǒng)位置信息實(shí)現(xiàn)自身隱藏功能實(shí)例,有需要的朋友可以了解一下。2016-11-11Android?shape與selector標(biāo)簽使用詳解
Android中提供一種xml的方式,讓我們可以自由地定義背景,比較常用的就是shape標(biāo)簽和selector標(biāo)簽,這篇文章主要介紹了Android?shape與selector標(biāo)簽使用,需要的朋友可以參考下2022-05-05Android使用Realm數(shù)據(jù)庫(kù)實(shí)現(xiàn)App中的收藏功能(代碼詳解)
這篇文章主要介紹了Android使用Realm數(shù)據(jù)庫(kù)實(shí)現(xiàn)App中的收藏功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Android手冊(cè)之Toolbar搜索聯(lián)動(dòng)及監(jiān)聽小技巧
這篇文章主要為大家介紹了Android手冊(cè)之Toolbar搜索聯(lián)動(dòng)及監(jiān)聽小技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Android實(shí)現(xiàn)蝸牛進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)蝸牛進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06