2012-01-23 3 views
3

플러그인에서 플러그인을 사용하는 SBT 프로젝트의 이름에 액세스하고 싶습니다. build.sbt플러그인에서 SBT 프로젝트의 설정에 액세스하는 방법은 무엇입니까?

나는 다음과 같은 한 :

name := "x_include" 

나는이 name.key.label의 사용을 통해 오히려 정직 것이다 획득 가정. 그러나이 코드는 SBT의 Keys.scala에 지정된 'name'프로젝트의 기본 이름을 반환합니다. 위의 출력의 세 번째 줄은 분명히 내 프로젝트 이름 동안 사용

[info] Loading global plugins from /Users/ndidialaneme/.sbt/plugins 
[info] Loading project definition from /Users/ndidialaneme/Sandbox/sbt-docbook-plugin/src/sbt-test/docbook/x_include/project 
[info] Set current project to x_include (in build file:/Users/ndidialaneme/Sandbox/sbt-docbook-plugin/src/sbt-test/docbook/x_include/) 
[info] Updating {file:/Users/ndidialaneme/Sandbox/sbt-docbook-plugin/src/sbt-test/docbook/x_include/}default-b1b964... 
    ... 
[info] **** Project: name 

:

나는 처음 그러나 다음과 같은 이유로 콘솔 출력에 가능성이 보인다, 그것은로드/타이밍 문제의 일종되었을 수 있습니다 생각 , 마지막 줄은 그렇지 않습니다.

어떤 조언이 필요합니까?


UPDATE :

폴 부처의 answer가 제대로의 내 질문에 대답,하지만 내 질문에 제대로 나가셨된다.

SBT 플러그인을 만들고 있습니다. 나에게 돌려 보내지는 이름은 당연히 플러그인의 이름이다. 실제로 반환해야하는 것은 플러그인을 사용하는 프로젝트의 이름입니다. 나는 이것이 이미 상당한 양의 복잡성을 추가하는 것을 이미 볼 수 있지만, 구현이 불가능해야한다고 생각하지는 않습니다.

xsbt-reflect 코드와 함께 SBT API/문서가 도움이 되었기를 바랍니다.

답변

3

xsbt-reflect을 살펴보십시오.

+0

감사합니다. 나는 그것을 지금 시행 할 것이다. 그러나이 기능이 SBT의 일부가 아닌 이유에 대해 궁금합니다. 흠. 아마도 미래 버전 일 수 있습니다. – Didia

+1

그래서 sbt 플러그인은 적용되는 프로젝트의 이름에 직접 액세스 할 수 없습니까? 멀티 프로젝트 빌드에서 보자. 최근 버전에서이 기능이 향상되었습니다. – matanster

관련 문제