2014-01-24 2 views
0

Я использую SBT 0.13.0 и 2.10.3 Scala«публиковать» на локальном репозитории maven создает только скаладочные банки?

Я хотел опубликовать артефакт моего местного Maven репо, так что я добавил следующее build.sbt:

publishMavenStyle := true 

publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository"))) 

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

Когда я использую publish ЦМД банки создаются в моем домашнем каталоге .m2, но есть один и тот же контент, означающий, что они содержат только скаладоки - только файлы html, css и js.

Это мой второй раз, когда я публикую свой артефакт в этом проекте. В последний раз он работал отлично. Большинство классов изменили свои пакеты, может ли это быть причиной и как это исправить?

ответ

1

Удалить artifactName, и он должен снова работать нормально.

Почему вы переопределяете его (поскольку он теперь разбивается publish)? Какова первоначальная цель?

[sbt-0-13-1]> about 
[info] This is sbt 0.13.1 
[info] The current project is {file:/Users/jacek/sandbox/so/sbt-0.13.1/}sbt-0-13-1 0.1-SNAPSHOT 
[info] The current project is built against Scala 2.10.3 
[info] Available Plugins: com.typesafe.sbt.SbtGit, com.typesafe.sbt.SbtProguard, growl.GrowlingTests, np.Plugin, com.timushev.sbt.updates.UpdatesPlugin 
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.3 
[sbt-0-13-1]> help artifactName 
Function that produces the artifact name from its definition. 
[sbt-0-13-1]> inspect artifactName 
[info] Setting: scala.Function3[sbt.ScalaVersion, sbt.ModuleID, sbt.Artifact, java.lang.String] = <function3> 
[info] Description: 
[info] Function that produces the artifact name from its definition. 
[info] Provided by: 
[info] */*:artifactName 
[info] Defined at: 
[info] (sbt.Defaults) Defaults.scala:533 
[info] Reverse dependencies: 
[info] *:makePom::artifactPath 
[info] Delegates: 
[info] *:artifactName 
[info] {.}/*:artifactName 
[info] */*:artifactName 
[info] Related: 
[info] */*:artifactName 

Посмотрите, как реализация по умолчанию определена в sbt.Artifact.

+0

Спасибо @Jacek, это сработало! Теперь мне интересно, почему функция, возвращающая String, которая используется для генерации имен файлов, может значительно изменить общее поведение? – almendar

+0

О, ты спросил, почему я хотел изменить имя. Я не помню :) Этот банщик используется моими коллегами, которые не прикасаются к Scala, поэтому перед ним есть простой интерфейс Java. Именование было чем-то связано с этим, но я действительно не помню, что было причиной. – almendar

Смежные вопросы