[SCALA] 어떻게 아이비 캐시 디렉토리를 구성하는 사용자 별 또는 시스템 전체?
SCALA어떻게 아이비 캐시 디렉토리를 구성하는 사용자 별 또는 시스템 전체?
나는 스칼라 프로젝트를 구축하기위한 내 빌드 도구로 SBT를 사용하고 있습니다.
내 문제는 내 사용자 홈 디렉토리에 다운로드 종속성 SBT를 구성 할 수 없습니다. 그러므로 나는 다른 곳 아이비 캐시 디렉토리를 넣어 SBT를 알려줄 수있는 사용자 별 또는 더 나은 시스템 전체 설정을 찾고 있어요.
받는다는으로 로컬 저장소를 구성하는 데 사용할 수있는 사용자 별 Settings.XML이있다.
어떻게 아이비의 캐시의 위치를 오버라이드 (override)하는 질문을 읽고? 그리고 대답을하지만 단지 프로젝트 단위의 설정을 구성하는 방법을 설명 보인다.
대안이없는 경우 나는 당 프로젝트 설정에 갈 것입니다,하지만 난 일에 대한 언급 질문에서 답을하지 않았다. 좀 더 자세한 내용은 어디 ivysettings.xml를 넣어하는 방법, 예를 들어 환영 할 것이다. 나는 프로젝트의 루트 디렉토리에 넣어 그것은 작동하지 않았다.
해결법
-
==============================
1.당신은 단순히 당신의 SBT 시작 쉘 스크립트에 환경 변수를 추가 할 수 있습니다 :
당신은 단순히 당신의 SBT 시작 쉘 스크립트에 환경 변수를 추가 할 수 있습니다 :
java -Dsbt.ivy.home=/tmp/.ivy2/ ...
공식 문서 라이브러리 관리를 참조하십시오.
-
==============================
2.sbt.ivy.home 속성은 솔루션의 절반입니다. (가) 실행 다운로드 SBT 자체 (및 스칼라 컴파일러와 라이브러리 등과 같은 관련 종속) 요아킴 Hofer에 의해 언급 한 바와 같이,이 프로젝트에 의해 선언 된 종속성을 다운로드받을 위치에 영향을주지 않습니다 SBT 곳은 제어합니다.
sbt.ivy.home 속성은 솔루션의 절반입니다. (가) 실행 다운로드 SBT 자체 (및 스칼라 컴파일러와 라이브러리 등과 같은 관련 종속) 요아킴 Hofer에 의해 언급 한 바와 같이,이 프로젝트에 의해 선언 된 종속성을 다운로드받을 위치에 영향을주지 않습니다 SBT 곳은 제어합니다.
그 위치를 변경하려면, 당신은 ivy.home 속성을 설정해야합니다. 그래서, 요아킴 최초의 솔루션을 증가시키기 위해, 당신은 두 시스템 속성을 설정합니다 :
java -Dsbt.ivy.home=/tmp/.ivy2/ -Divy.home=/tmp/.ivy2/ -jar `dirname $0`/sbt-launch.jar "$@"
이 곳의 호텔을 가지고 있으며, 런처는 /tmp/.ivy2/ 디렉토리에 모두 프로젝트의와 SBT의 종속성을 다운로드합니다. 물론, 당신은 별도의 디렉토리에 넣어뿐만 아니라 수 있습니다.
-
==============================
3.당신이 이미하지 않으면 당신은 SBT-엑스트라를 사용해야합니다.
당신이 이미하지 않으면 당신은 SBT-엑스트라를 사용해야합니다.
그런 다음, 당신이 그것을 통과 플래그는 단순히이다 :
sbt -ivy /path/to/.ivy2
-
==============================
4.다음과 같이 나는 일반적으로 빌드 파일로 나란히 ivy.xml과 ivysettings.xml 파일을 넣어 :
다음과 같이 나는 일반적으로 빌드 파일로 나란히 ivy.xml과 ivysettings.xml 파일을 넣어 :
build.xml ivy.xml ivysettings.xml
아이비 작업 결심하고 두 파일을 찾을 수 있어야 검색 할 수 있습니다.
예를 들면 :
<target name="init" description="--> retrieve dependencies with ivy"> <ivy:retrieve pattern="lib/[conf]/[artifact].[ext]"/> </target>
홀수, 그것은 당신을 위해 작동하지 않는 것이다.
당신은 몇 가지 방법에 받는다는 설정 파일을 에뮬레이트 할 수 있습니다
1) 프로젝트 ivysettings.xml 내 지시어 포함
<ivysettings> <include file="${user.home}/.ivy2/my-ivysettings.xml"/> </ivysettings>
빌드 파일 2) 위치 설정
<target name="init" description="--> retrieve dependencies with ivy"> <ivy:settings file="${user.home}/.ivy2/my-ivysettings.xml" /> <ivy:retrieve pattern="lib/[conf]/[artifact].[ext]"/> </target>
3) 나는이 시도 적이하지만 난 당신이 ANT 속성을 사용하여 기본 위치를 대체 할 수 있다고 생각
ant -Divy.settings.file=$HOME/.ivy2/my-ivysettings.xml
-
==============================
5.아래 그림처럼 당신은 Path.userHome.absolutePath를 사용하여 홈 디렉토리를 검색 할 수 있습니다 :
아래 그림처럼 당신은 Path.userHome.absolutePath를 사용하여 홈 디렉토리를 검색 할 수 있습니다 :
resolvers += Resolver.file("Local", file( Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
나는 아래 그림처럼 당신은 또한, 같은 방법으로 System.getenv 및 CONCATENATE를 사용하여 환경 변수를 검색 할 수 있다고 가정 :
resolvers += Resolver.file("Local", file( System.getenv("IVY_HOME") + "/whatever/it/is"))(Resolver.ivyStylePatterns)
-
==============================
6.SBT 부팅 자체 동안 캐시 위치를 편집 할 경우, 공식 문서에 SBT 실행기 구성을 참조하십시오.
SBT 부팅 자체 동안 캐시 위치를 편집 할 경우, 공식 문서에 SBT 실행기 구성을 참조하십시오.
기본적으로,이 시스템 전체의 작동하도록하기 위해, 당신은해야 할 것이다 :
이 구성은 불행하게도하지만, 일반 SBT 사용에 이월하지 않는 것 같습니다.
-
==============================
7.
sbt -ivy /tmp/.ivy2 compile
참조 : 남자 SBT
from https://stackoverflow.com/questions/3142856/how-to-configure-ivy-cache-directory-per-user-or-system-wide by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 그들이 변경 후 어떻게 build.sbt에서 다시로드 종속성을하게 IntelliJ IDEA를 강제로? (0) | 2019.11.15 |
---|---|
[SCALA] 어떻게 술어에 의해 두 부분으로 순서를 분할하려면? (0) | 2019.11.15 |
[SCALA] 스칼라 - XML에 중첩 된 요소를 수정 (0) | 2019.11.14 |
[SCALA] 스칼라 스트림과 같은 SQL ResultSet의 치료 (0) | 2019.11.14 |
[SCALA] 스칼라에서 예외를 던지는 무슨 일이 "공식적인 규칙"입니다 (0) | 2019.11.14 |