2016-07-22 17 views
2

我有我的build.sbt項目這樣的配置:SBT - 不替換連字符點陣的發佈名稱

name := "test-utils_0.1" 
organization := "com.my.test.project" 
version := "0.6.0-SNAPSHOT" 

我的問題是 - 當我運行sbt clean publish-local命令,罐子被公佈在.ivy2本地目錄爲:

test-utils_0-1_2.11

什麼是將其更改爲test-utils_0.1_2.11最好的方法是什麼?

UPDATE 我還試圖修改build.sbt的artifactName財產以這樣的方式

name := "test-utils" 
organization := "com.my.test.project" 
version := "0.6.0-SNAPSHOT" 
utilsVersion := "0.1" 

artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) => 
    artifact.name + "_" + utilsVersion + "_" + sv.binary + "-" + module.revision + "." + artifact.extension 
} 

我也得到呼籲test-utils_0.1_2.11.jar罐子,但這並不改變中發佈我的名字回購(它仍然被使用name財產公佈,即test-utils_2.11/0.6.0-SNAPSHOT/test-utils_2.11.jar

回答

0

_更換.artifact.name與artifact.name.replace( 「_」 「」):

artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) => 
    artifact.name.replace(".", "_") + "_" + utilsVersion + "_" + sv.binary + "-" + module.revision + "." + artifact.extension 
} 

如果您想自定義您的路徑的另一個部分,使用是這樣的:

def customStyleBasePattern = "[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[artifact]-[revision](-[classifier]).[ext]" 
    val ivyLocal = Resolver.file("local", file(Path.userHome.absolutePath + "/.ivy2/local2"))(Patterns(Nil, customStyleBasePattern :: Nil, true)) 

    externalResolvers += ivyLocal 
+0

似乎不工作 - 用替換的字符創建的.jar但發佈與常春藤它老,不換名。根據文檔'該函數可能會被修改,以產生不同的本地名稱的工件,而不會影響發佈的名稱,這是由工件定義結合存儲庫模式確定的。「 - 我想知道是否有任何方式來影響實際發佈的名稱。 – Niemand