복붙노트

[SCALA] 쉬운 방법은 SBT에 의해 생성 * 모든 * 없애?

SCALA

쉬운 방법은 SBT에 의해 생성 * 모든 * 없애?

모든 것을 제거 SBT 빌드를 수행 한 결과로 생성하기 얻을 수있는 쉬운 방법이 있습니까? 이 사방 대상 디렉토리를 생성에서 그것은집니다. 실행할 수 있는

sbt clean clean-cache clean-lib clean-plugins

... 모두를 제거하지 않습니다.

해결법

  1. ==============================

    1.내 SBT 0.13.5와 시스템 (우분투 리눅스)와 코 세라 기능적 프로그래밍에서 일부 프로젝트에 물론 나는 때문에 모든 캐시 파일에 대한 모든 12 개 프로젝트에 2.1GB까지 기록했다 폴더를 발견하고 스칼라 다운로드 중복.

    내 SBT 0.13.5와 시스템 (우분투 리눅스)와 코 세라 기능적 프로그래밍에서 일부 프로젝트에 물론 나는 때문에 모든 캐시 파일에 대한 모든 12 개 프로젝트에 2.1GB까지 기록했다 폴더를 발견하고 스칼라 다운로드 중복.

    현재 SBT는 그 일을 명령하고 거의 모든 청소 얻을 :

    sbt clean clean-files
    

    이 최고 수준 "대상"및 프로젝트에서 폴더 (이 경우 3.2MB 아래로 23메가바이트)하지만 잎 일부 대상 폴더 "를 lib_managed"제거 :

    ./project/project/project/target
    ./project/project/target
    ./project/target
    

    이 (또한 잭 - oconnor @ 게시 한) 리눅스 find 명령은 매우 도움이되는 곳이다 :

    find . -name target -type d -exec rm -rf {} \;
    

    이것은 우리 내 자신의 프로젝트 중 하나에 불과 444킬로바이트 아래로 돌아 오기와 2.1GB는 5.0MB로 내려 간다!

    창에서 당신은 예를 들어, 많은 유용한 명령 행 옵션으로하지 않습니다 어떤 경로 이름에 와일드 카드 별,하지만 당신은 항상 시도하고 그것을 강제 할 수 있습니다 :

    rmdir /s /q target project/target project/project/target
    

    내가 자동으로 찾는 할 수있는 최선은 DIR 명령입니다 :

    dir /ad /s /b | find "target"
    
  2. ==============================

    2.분명히 이것은 재현을 위해 매우 중요합니다 같은 젠킨스와 같은 통합 서버에 구축!

    분명히 이것은 재현을 위해 매우 중요합니다 같은 젠킨스와 같은 통합 서버에 구축!

    아이비 캐시를 포함한 모든 파일이 같은 SBT이 같은 명령 줄 인수를 제공하여, 통합 서버 작업 공간에 저장되어 있는지 확인합니다 :

    -Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy
    

    다음 젠킨스의 아웃 작업 공간을 닦아 버튼, 또는 다른 통합 서버에서 해당을 클릭합니다. 그것은 확실히 그것을 어떻게해야!

    당신은 SBT의 실행 스크립트의 최신 버전을 사용하는 경우 또는, 당신은 단순히 대신 노 공유를 추가 할 수 있습니다.

  3. ==============================

    3.리눅스 또는 유사한에서이는 실수로 소스 코드에 존재 수있는 디렉토리라는 이름의 타겟을 제거하지 않으므로, 찾기 -name보다 낫다 :

    리눅스 또는 유사한에서이는 실수로 소스 코드에 존재 수있는 디렉토리라는 이름의 타겟을 제거하지 않으므로, 찾기 -name보다 낫다 :

    find . -regextype posix-awk -regex \.(/project)*/target -exec rm -r {} +
    

    당신이 쉘 내에서이 명령을 실행하는 경우, 당신은 bash는, 예를 들어, 정규 표현식을 인용해야합니다 :

    find . -regextype posix-awk -regex '\.(/project)*/target' -exec rm -r {} +
    

    (예를 들어, 맥 OS X에) BSD의 발견으로 명령은 다음과 같습니다

    find -E . -regex \.(/project)*/target -exec rm -r {} +
    
  4. ==============================

    4.나는 개인적으로 나는 GNU 메이크 작업으로 약간의 변화를 포함, 아주 좋은 제안 된 솔루션에 동의합니다.

    나는 개인적으로 나는 GNU 메이크 작업으로 약간의 변화를 포함, 아주 좋은 제안 된 솔루션에 동의합니다.

    메이크 파일의 내용 :

    clean:
        find . -name target | xargs rm -fr
    

    다음 실행 :

    make clean
    

    문서와 같은 코드로 메이크 파일을 사용하여 같은 I.

  5. from https://stackoverflow.com/questions/4483230/an-easy-way-to-get-rid-of-everything-generated-by-sbt by cc-by-sa and MIT license