Android Studio 와 SVN 버 전 관리 프로그램의 협업 사용 안내

5751 단어 SVNAndroid
AndroidStudio 의 SVN 설치 와 사용 방법 은 제 가 예전 에 사 용 했 던 다른 IDE 와 큰 차이 가 있 습 니 다.너무 번 거 롭 고 인터넷 관련 자료 가 적 습 니 다.지금 은 Git 이 유행 하 는 것 같 습 니 다.예전 에 github 를 사 용 했 지만 그 는 오픈 소스 프로젝트 만 무료 입 니 다.다음은 최근 에 SVN 을 설치 하고 사용 한 경험 을 정리 하 겠 습 니 다.
ignore 나 다른 설정 이 잘못 되 었 다 는 등 의외 의 상황 이 발생 하면 androidstudio 를 다시 시작 하거나 svn 의 update 를 실행 해 보 세 요.
1.설치 설정:
예전 에 ZendStudio 등 을 사용 하면 플러그 인 을 직접 설치 하면 되 었 지만 여 기 는 안 됩 니 다.command line 기능 을 가 진 SVN 클 라 이언 트 를 독립 적 으로 설치 해 야 합 니 다.저 는 TortoiseSVN 을 사 용 했 습 니 다.1.7 이후 에 command line 모드 를 지원 하기 시작 했다 고 합 니 다.저 는 지금 1.8.5 버 전 을 사용 하고 있 습 니 다.
그림 과 같이 설치 할 때 command line 을 사용자 정의 로 선택해 야 합 니 다.그렇지 않 으 면 설치 되 지 않 습 니 다.
2016319154934235.png (499×388)
2016319155029299.png (528×427)
설치 완료 후 IDE 의 setting 설정 패 널 을 엽 니 다.
2016319155045389.png (784×597)
위 그림 경로  Version Control 의 Subersion 설정:
Use Command Line Client 는 로 컬 TortoiseSVN 이 설 치 된 svn.exe 파일 경 로 를 탐색 하 는 것 을 선택 합 니 다.다음 그림 입 니 다.(입력 상자 맨 오른쪽 에 탐색 단추 가 있 습 니 다.표시 되 지 않 을 수도 있 습 니 다.창 을 늘 리 면 보 입 니 다)
2016319155227773.jpg (440×531)
2016319155255084.jpg (711×251)
설정 이 완료 되면 설치 가 완 료 됩 니 다.
2.SVN 가 져 오기,서명
이것 은 비교적 간단 하 다.
2016319155343216.jpg (620×475)
CVS 메뉴 밑 에 Import into Version Control 이 있 는데 svn 을 선택 하면 됩 니 다.
서명 작업 도 많 지 않 습 니 다.새 항목 에서 svn 에서 서명 하고 항목 을 생 성 할 수도 있 습 니 다.
맨 아래 항목  Browse VCS Repository 는 원 격 SVN 서버 의 파일 을 탐색 하고 삭제 할 수 있 습 니 다.
3.무시 파일 이나 디 렉 터 리 지정
AndroidStudio 의 Setting 패 널 에 설 정 된 ignore 는 아무런 효과 가 없 는 것 같 습 니 다.
무시 한 디 렉 터 리 의 디 스 플레이 효과(어두 운 노란색 과 녹색)를 살 펴 보 겠 습 니 다.
2016319155404061.png (300×440)
Setting 에서 의 설정,주로 무시 하 는 디 렉 터 리 와 파일:(이 설정 이 작 동 하지 않 는 것 같 지만 설정 하 십시오)
시스템 은 기본적으로 두 세 개의 파일 과 디 렉 터 리 가 있 습 니 다.제 가 추가 한'gradle.idea build 디 렉 터 리'는 이 세 개의 디 렉 터 리 가 svn 을 따라 가 서 는 안 된다 고 생각 합 니 다.컴 파일 할 때마다 모든 로 컬 환경 이 다 릅 니 다.그리고 저 는 build 와 idea 아래 에 있 는 library 파일 이 항상 충돌 하여 업데이트 할 때마다 지 워 졌 습 니 다.
2016319155428878.png (729×447)
TortoiseSVN 을 통 해 무 시 를 추가 합 니 다:
2016319155447066.png (656×450)
업데이트 및 제출
2016319155521244.png (274×76)
이 두 개의 작은 단 추 는 매우 작 동 합 니 다.위로 향 하 는 녹색 은 commt 이 고 아래 의 파란색 은 update 입 니 다.
4.Gradle 플러그 인 을 사용 하여 SVN 번 호 를 자동 으로 작성 하고 지정 한 디 렉 터 리 에 발표(복사)합 니 다.
Gradle 은 GitHub 프로젝트 의 주 소 는 다음 과 같 습 니 다.
https://github.com/Goddchen/Android-Gradle-Examples/tree/master/Gradle%20Library%20Projects
설치 배치 가 매우 편리 하 니,여 기 는 더 이상 말 하지 않 겠 습 니 다.다음은 우리 가 구체 적 으로 보 겠 습 니 다.
svn 번호:
1.classpath 의존 도 증가:

classpath group: 'org.tmatesoft.svnkit', name: 'svnkit', version: '1.8.11' 
     (최신 버 전 찾기)
2.주 항목(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 에는 마지막 제출 등 다른 데이터 도 있 습 니 다.필요 한 것 은 스스로 변경 할 수 있다.
App 버 전 번호:
App 버 전 번 호 는 default Config 에서 직접 맞 출 수 있 지만,때로는 manifest.에 쓰 면 쉽게 잊 혀 지지 않 습 니 다.

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 의 경 로 는 현재 build.gradle 에 비해 표준 AS 생 성 은 src/main/android Manifest.xml 입 니 다.
사용 가능  ${getVerName()}
컴 파일 후 출력 경로:
이것 은 여러 가지 방법 이 있 습 니 다.하 나 는 build 후 복사 입 니 다.하 나 는 variants 의 출력 경 로 를 직접 수정 하 는 것 입 니 다.여 기 는 잠시 다음 을 제공 합 니 다.

buildTypes { 
  release { 
    // ..... 
    applicationVariants.all { variant -> 
      if ("release".equals(variant.buildType.name)) {// Only Release 
        variant.outputs.each { output -> 
          def targetDir = "D:/App"; //      
 
          output.outputFile = new File(targetDir, 
              "App_${getVerName()}_${getSvnRevision()}.apk"); 
          println(output.outputFile) 
        } 
      } 
    } 
  } 
} 

좋은 웹페이지 즐겨찾기