2014-07-23 56 views
2

對於sbt/Scala/Play項目:如何將分類器添加到依賴項並使用git分支名稱進行發佈?

我想使用當前分支名稱並將其添加爲依賴關係分辨率的分類器。如果它不是一個特定的分支,那麼我想默認沒有分類器。

此外,回購應發佈其分支名稱作爲分類。

I.e.如果我在開發分支上,則所有內部依賴關係都應該使用分類器develop來解決,如果在任何其他分支上,它應該使用不分類器來解決。

也爲publish,基於分支我想添加分支名稱,如果需要的話。

任何幫助,將不勝感激。

回答

3

我遇到了同樣的問題。
我結束了使用上述方法,即使用:
def branch() = "git rev-parse --abbrev-ref HEAD" !!
和Version:
version := branch + "-0.0.3-SNAPSHOT",

講究,雖然你需要兩個感嘆號,而不是一個(一個返回命令返回碼)。

現在我可以在artifactory中使用它作爲解析器(並在不同分支之間區分)。

1

請問def爲您的依賴關係生成ModuleID如何在libraryDependencies下使用git rev-parse --abbrev-ref HEAD

build.sbt構建定義中的以下內容用作柔和啓動。使用show libraryDependencies打印出添加分支的依賴關係。

def branch() = "git rev-parse --abbrev-ref HEAD" ! 

def dependency(g: String, m: String, v: String): ModuleID = { 
    g %% m % s"$v-${branch()}" 
} 

libraryDependencies += dependency("com.typesafe.akka", "akka-actor", "2.3.4") 

您也可以用A GIT plugin for SBT取得相當的成功。

+0

在Play/Build.scala中,我如何獲得最新的SNAPSHOT或最新版本,在gradle世界中,我只使用latest.integration或latest.release。感謝您的幫助! – user2616355

+0

'latest.integration'如[依賴](http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Library-Management.html#dependencies)在sbt官方文檔中所述。 –