3
votes

I am creating a new SBT project and here are the contents of my SBT files:

build.properties

sbt.version=0.12.0

plugins.sbt

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")

build.sbt

name := "peroo"

version := "0.1-SNAPSHOT"

scalaVersion := "2.10.0"

resolvers ++= Seq(
  Classpaths.typesafeResolver,
  "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
  "Sonatype releases"  at "https://oss.sonatype.org/content/repositories/releases/"
)

libraryDependencies ++= Seq(
  compilerPlugin("org.scala-lang.plugins" % "continuations" % "2.10.0"),
  "com.google.guava" % "guava" % "13.0"
)

scalacOptions ++= Seq("-P:continuations:enable", "-deprecation", "-unchecked", "-feature")

autoCompilerPlugins := true

Here's the error I get when I attempt to start sbt in the project directory root:

➜  peroo  sbt 
[info] Loading project definition from /Users/rahulphulore/projects/rahul/peroo/project
[info] Updating {file:/Users/rahulphulore/projects/rahul/peroo/project/}default-941135...
[info] Resolving com.google.guava#guava;13.0 ...
[info] Resolving com.github.mpeltonen#sbt-idea;1.2.0 ...
[warn]  module not found: com.github.mpeltonen#sbt-idea;1.2.0
[warn] ==== typesafe-ivy-releases: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/com.github.mpeltonen/sbt-idea/scala_2.10/sbt_0.12/1.2.0/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn]   http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/com.github.mpeltonen/sbt-idea/scala_2.10/sbt_0.12/1.2.0/ivys/ivy.xml
[warn] ==== local: tried
[warn]   /Users/rahulphulore/.ivy2/local/com.github.mpeltonen/sbt-idea/scala_2.10/sbt_0.12/1.2.0/ivys/ivy.xml
[warn] ==== typesafe-ivy-releases: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/com.github.mpeltonen/sbt-idea/scala_2.10/sbt_0.12/1.2.0/ivys/ivy.xml
[warn] ==== Sonatype snapshots: tried
[warn]   http://oss.sonatype.org/content/repositories/snapshots/com/github/mpeltonen/sbt-idea_2.10_0.12/1.2.0/sbt-idea-1.2.0.pom
[warn] ==== Sonatype releases: tried
[warn]   https://oss.sonatype.org/content/repositories/releases/com/github/mpeltonen/sbt-idea_2.10_0.12/1.2.0/sbt-idea-1.2.0.pom
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/com/github/mpeltonen/sbt-idea_2.10_0.12/1.2.0/sbt-idea-1.2.0.pom
[info] Resolving org.scala-sbt#sbt;0.12.0 ...
[info] Resolving org.scala-sbt#main;0.12.0 ...
[info] Resolving org.scala-sbt#actions;0.12.0 ...
[info] Resolving org.scala-sbt#classpath;0.12.0 ...
[info] Resolving org.scala-sbt#launcher-interface;0.12.0 ...
[info] Resolving org.scala-lang#scala-library;2.10.0 ...
[info] Resolving org.scala-sbt#interface;0.12.0 ...
[info] Resolving org.scala-sbt#io;0.12.0 ...
[info] Resolving org.scala-sbt#control;0.12.0 ...
[info] Resolving org.scala-lang#scala-compiler;2.10.0 ...
[info] Resolving org.scala-lang#scala-reflect;2.10.0 ...
[info] Resolving org.scala-sbt#completion;0.12.0 ...
[info] Resolving org.scala-sbt#collections;0.12.0 ...
[info] Resolving jline#jline;1.0 ...
[info] Resolving org.scala-sbt#api;0.12.0 ...
[info] Resolving org.scala-sbt#compiler-integration;0.12.0 ...
[info] Resolving org.scala-sbt#incremental-compiler;0.12.0 ...
[info] Resolving org.scala-sbt#logging;0.12.0 ...
[info] Resolving org.scala-sbt#process;0.12.0 ...
[info] Resolving org.scala-sbt#compile;0.12.0 ...
[info] Resolving org.scala-sbt#persist;0.12.0 ...
[info] Resolving org.scala-tools.sbinary#sbinary_2.9.0;0.4.0 ...
[info] Resolving org.scala-sbt#classfile;0.12.0 ...
[info] Resolving org.scala-sbt#compiler-ivy-integration;0.12.0 ...
[info] Resolving org.scala-sbt#ivy;0.12.0 ...
[info] Resolving org.apache.ivy#ivy;2.3.0-rc1 ...
[info] Resolving com.jcraft#jsch;0.1.46 ...
[info] Resolving commons-httpclient#commons-httpclient;3.1 ...
[info] Resolving commons-logging#commons-logging;1.0.4 ...
[info] Resolving commons-codec#commons-codec;1.2 ...
[info] Resolving org.scala-sbt#run;0.12.0 ...
[info] Resolving org.scala-sbt#task-system;0.12.0 ...
[info] Resolving org.scala-sbt#tasks;0.12.0 ...
[info] Resolving org.scala-sbt#tracking;0.12.0 ...
[info] Resolving org.scala-sbt#cache;0.12.0 ...
[info] Resolving org.scala-sbt#testing;0.12.0 ...
[info] Resolving org.scala-sbt#test-agent;0.12.0 ...
[info] Resolving org.scala-tools.testing#test-interface;0.5 ...
[info] Resolving org.scala-sbt#command;0.12.0 ...
[info] Resolving org.scala-sbt#compiler-interface;0.12.0 ...
[info] Resolving org.scala-sbt#precompiled-2_8_2;0.12.0 ...
[info] Resolving org.scala-sbt#precompiled-2_10_0-m4;0.12.0 ...
[info] Resolving org.scala-lang.plugins#continuations;2.10.0 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.github.mpeltonen#sbt-idea;1.2.0: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]      com.github.mpeltonen:sbt-idea:1.2.0 (sbtVersion=0.12, scalaVersion=2.10)
[warn] 
sbt.ResolveException: unresolved dependency: com.github.mpeltonen#sbt-idea;1.2.0: not found
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:211)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:122)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:121)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
    at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:102)
    at sbt.IvySbt.liftedTree1$1(Ivy.scala:49)
    at sbt.IvySbt.action$1(Ivy.scala:49)
    at sbt.IvySbt$$anon$3.call(Ivy.scala:58)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:75)
    at xsbt.boot.Locks$GlobalLock.withChannelRetries$1(Locks.scala:58)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:79)
    at xsbt.boot.Using$.withResource(Using.scala:11)
    at xsbt.boot.Using$.apply(Using.scala:10)
    at xsbt.boot.Locks$GlobalLock.liftedTree1$1(Locks.scala:51)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:51)
    at xsbt.boot.Locks$.apply0(Locks.scala:30)
    at xsbt.boot.Locks$.apply(Locks.scala:27)
    at sbt.IvySbt.withDefaultLogger(Ivy.scala:58)
    at sbt.IvySbt.withIvy(Ivy.scala:99)
    at sbt.IvySbt.withIvy(Ivy.scala:95)
    at sbt.IvySbt$Module.withModule(Ivy.scala:114)
    at sbt.IvyActions$.update(IvyActions.scala:121)
    at sbt.Classpaths$$anonfun$work$1$1.apply(Defaults.scala:949)
    at sbt.Classpaths$$anonfun$work$1$1.apply(Defaults.scala:947)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$54.apply(Defaults.scala:970)
    at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$54.apply(Defaults.scala:968)
    at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:972)
    at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:967)
    at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)
    at sbt.Classpaths$.cachedUpdate(Defaults.scala:975)
    at sbt.Classpaths$$anonfun$45.apply(Defaults.scala:855)
    at sbt.Classpaths$$anonfun$45.apply(Defaults.scala:852)
    at sbt.Scoped$$anonfun$hf10$1.apply(Structure.scala:586)
    at sbt.Scoped$$anonfun$hf10$1.apply(Structure.scala:586)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$5.work(System.scala:71)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:238)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
[error] (*:update) sbt.ResolveException: unresolved dependency: com.github.mpeltonen#sbt-idea;1.2.0: not found
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
➜  peroo  

What could be the issue?

Edit:

Here's what my project directory structure looks like:

enter image description here

4
Are you sure the files you showed are in their proper respective directories? build.properties and plugins.sbt should be in the project/ subdirectory of your project's base directory and build.sbt should be in that base directory. If you have those correct, you can try to eradicate your ~/.ivy2 and project/target directories entirely (and live with "(re-)downloading the Internet" the next time you run SBT).Randall Schulz

4 Answers

2
votes

I added it on Mac Mountain Lion in ~/.sbt/plugins/plugins.sbt. It works and dependencies no longer fail. I think you will need to use it outside of scala version and add the scala-reflect.jar to your path manually inside the IDE to get this working.

2
votes

Your plugins.sbt file must either be global, as @alex23 illustrates, or in the project's project/ subdirectory. This way it applies to SBT and not to your own code, which presumably has no need for it.

2
votes

According to the project releases page the most recent version of sbt-idea is 1.5.1 that was released for sbt 0.11, 0.12 and 0.13.

There is however a more recent version of the plugin available in http://repo1.maven.org/maven2/com/github/mpeltonen/ - 1.5.2.

You should be able to use the plugin with the following line in project/sbt-idea.sbt:

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2")

There's a much easier yet slower approach to specify a proper version number - use latest.integration for the version part.

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "latest.integration")

An excerpt about latest.integration's performance from the documentation of Ivy:

Note that in order to find the latest revision with the appropriate status Ivy has to parse all the ivy files in your repository from the last one until it finds such a revision. Hence don't be surprised if the resolution slow down.

Please note that both IntelliJ IDEA and sbt improved since you asked the question, and there's less need for the plugin currently as in IDEA "The new version of Scala plugin comes with built-in support for SBT, with code completion and dependencies import."

0
votes

I experienced apparently the same problem but with a newer version (1.5.X) that I "fixed" simply downgrading to the version 1.4.0 of the gen-idea plugin.

cat ~/.sbt/plugins/build.sbt
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.4.0")