2016-10-24 15 views
1

SBT-buildinfo生成的對象不能被引用

該項目有子模塊。這裏是主build.sbt

... 

lazy val abandon = (project in file(".")). 
    aggregate(base, cli, gui). 
    dependsOn(base, cli, gui). 
    enablePlugins(BuildInfoPlugin). 
    settings(commonSettings: _*). 
    settings(
    name := "abandon", 
    fork in run := true, 
    buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion), 
    buildInfoPackage := "co.uproot.abandon" 
) 

lazy val base = (project in file("base")). 
    settings(commonSettings: _*). 
    settings(
    name := "abandon-base", 
    fork in run := true 
) 


lazy val cli = (project in file("cli")). 
    dependsOn(base). 
    settings(commonSettings: _*). 
    settings(
    name := "abandon-cli", 
    fork in run := true 
) 

lazy val gui = (project in file("gui")). 
    dependsOn(base). 
    settings(commonSettings: _*). 
    settings(
    name := "abandon-gui", 
    fork in run := true 
) 

生成BuildInfo.scalatarget/scala-2.11/src_managed/main/sbt-buildinfo/BuildInfo.scala下位於預期。

package co.uproot.abandon 

import scala.Predef._ 

/** This object was generated by sbt-buildinfo. */ 
case object BuildInfo { 
    /** The value is "abandon". */ 
    val name: String = "abandon" 
    /** The value is "0.3.1". */ 
    val version: String = "0.3.1" 
    /** The value is "2.11.8". */ 
    val scalaVersion: String = "2.11.8" 
    /** The value is "0.13.12". */ 
    val sbtVersion: String = "0.13.12" 
    override val toString: String = { 
    "name: %s, version: %s, scalaVersion: %s, sbtVersion: %s" format (
     name, version, scalaVersion, sbtVersion 
    ) 
    } 
} 

當我去到一個文件中package co.uproot.abandon內,嘗試引用BuildInfo.version我得到

Error:(256, 42) object BuildInfo is not a member of package co.uproot.abandon 
    co.uproot.abandon.BuildInfo.version 

我讀到關於子模塊的問題,這個插件here最終試圖this的解決方法,但是這沒」幫助。

任何幫助將不勝感激!

+0

我有一個*非常*類似的設置項目,我沒有問題。按照您的設置進行配置之後,您是否嘗試過在IntelliJ'文件'菜單中嘗試'使緩存/重啓無效?您使用的是什麼版本的IntelliJ/SBT/Scala等? –

+0

@NathanielFord我只是這樣做了你的建議,它並沒有幫助。僅供參考使用: 的IntelliJ - ** 2016年2月5日** SBT - ** ** 0.13.12斯卡拉 - ** ** 2.11.6阿 – zaxme

回答

0

問題已解決。

只要確保的target/scala-2.11/src_managed/main/sbt-buildinfo/BuildInfo.scalamain部分在項目結構設置爲源特定的子模塊你想用它來和整個項目。

除此之外語法高亮擰所以它會顯示相同的方式,當它不能在編譯之前即。爲了避免這個問題,我在帖子這個的鏈接。

+0

!很高興你找到了一個答案:如果你已經指出你從哪個項目引用(我已經假定根據軟件包的根目錄),那就很清楚了。你應該爲你的答案添加一個工作配置給未來的人! –

相關問題