mpeltonen / sbt-idea

A simple-build-tool (sbt) plugin/processor for creating IntelliJ IDEA project files
Other
1.07k stars 153 forks source link

"optional" dependencies #198

Closed tonymorris closed 11 years ago

tonymorris commented 11 years ago

Libraries such as specs2 use optional dependencies, however, when I use a library that uses specs2 and I generate the idea files, the dependencies are not included. This means some code, especially test code (i.e. specs2), in idea is highlighted red because the dependency is not available.

I was wondering if this issue has been considered, but for some reason not implemented. Are there issues around support for optional dependencies?

Sorry if this is a duplicate.

mpeltonen commented 11 years ago

Someone correct me if I'm wrong, but I think a transitive dependency that is marked as 'optional' means that it is never included in transitive dependencies by Ivy, so it's up to you to tell in your project's libraryDependencies that you want to use this optional dependency by declaring it explicitly, in which case it should also appear in Idea metafiles after 'gen-idea'.

Just wondering how the project you're referring to can even compile in sbt, if sbt does not 'see' the optional dependency, so it may be that I'm not understanding the situation correctly.

Does "sbt 'show update'" listing include the optional dependency in question? If it does but Idea does not see it, then it is something that can and should be fixed in sbt-idea. If it doesn't, then its sbt/Ivy thing and out of sbt-idea plugin's control.

mtomko commented 11 years ago

I have this problem as well. I'm not an expert on optional dependencies, but I think that in general, the IDE needs to treat them as requirements and the optional flag is an indication to the dependency management system as to what dependencies get explicitly exported. When I import projects that have optional dependencies, I end up commenting out the "optional" part in the build.sbt file, running gen-idea, and then reverting the changes to build.sbt.

mtomko commented 11 years ago

For one of our projects, I ran sbt show update, and I see a section in the dependencies marked "optional":

 $ sbt 'show update'
Detected sbt version 0.12.0
Using /Users/mtomko/.sbt/0.12.0 as sbt dir, -sbt-dir to override.
[info] Loading project definition from /Users/mtomko/Documents/idea-workspace/scalamari/project
[info] Set current project to scalamari (in build file:/Users/mtomko/Documents/idea-workspace/scalamari/)
[info] Reapplying settings...
[info] Set current project to scalamari (in build file:/Users/mtomko/Documents/idea-workspace/scalamari/)
[info] Reapplying settings...
[info] Set current project to scalamari (in build file:/Users/mtomko/Documents/idea-workspace/scalamari/)
[info] Updating {file:/Users/mtomko/Documents/idea-workspace/scalamari/}default-145aa3...
[info] Resolving org.scala-lang#scala-library;2.9.1 ...
[info] Resolving com.google.guava#guava;10.0.1 ...
[info] Resolving com.google.code.findbugs#jsr305;1.3.9 ...
[info] Resolving commons-beanutils#commons-beanutils;1.8.3 ...
[info] Resolving commons-logging#commons-logging;1.1.1 ...
[info] Resolving commons-dbutils#commons-dbutils;1.4 ...
[info] Resolving com.beust#jcommander;1.20 ...
[info] Resolving org.scalatest#scalatest_2.9.1;2.0.M5b ...
[info] Resolving org.specs2#specs2_2.9.1;1.12.3 ...
[info] Resolving org.specs2#specs2-scalaz-core_2.9.1;6.0.1 ...
[info] Resolving junit#junit;4.10 ...
[info] Resolving org.hamcrest#hamcrest-core;1.1 ...
[info] Resolving com.h2database#h2;1.3.162 ...
[info] Resolving play#anorm_2.9.1;2.1-SNAPSHOT ...
[info] Resolving org.biojava#sequencing;1.8.2 ...
[info] Resolving com.google.guava#guava;11.0.1 ...
[info] Resolving org.biojava#core;1.8.2 ...
[info] Resolving commons-dbcp#commons-dbcp;1.2.2 ...
[info] Resolving commons-pool#commons-pool;1.3 ...
[info] Resolving org.biojava#bytecode;1.8.2 ...
[info] Done updating.
[info] Update report:
[info]  Resolve time: 892 ms, Download time: 58 ms, Download size: 0 bytes
[info]  compile:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.guava:guava:10.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-10.0.1.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]  runtime:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.guava:guava:10.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-10.0.1.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]  test:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.guava:guava:10.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-10.0.1.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]      org.scalatest:scalatest_2.9.1:2.0.M5b: (Artifact(scalatest_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-2.0.M5b.jar)
[info]      org.specs2:specs2_2.9.1:1.12.3: (Artifact(specs2_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.specs2/specs2_2.9.1/jars/specs2_2.9.1-1.12.3.jar)
[info]      org.specs2:specs2-scalaz-core_2.9.1:6.0.1: (Artifact(specs2-scalaz-core_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.specs2/specs2-scalaz-core_2.9.1/jars/specs2-scalaz-core_2.9.1-6.0.1.jar)
[info]      junit:junit:4.10: (Artifact(junit,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/junit/junit/jars/junit-4.10.jar)
[info]      org.hamcrest:hamcrest-core:1.1: (Artifact(hamcrest-core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.hamcrest/hamcrest-core/jars/hamcrest-core-1.1.jar)
[info]  provided:
[info]  optional:
[info]      com.h2database:h2:1.3.162: (Artifact(h2,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.h2database/h2/jars/h2-1.3.162.jar)
[info]      play:anorm_2.9.1:2.1-SNAPSHOT: (Artifact(anorm_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/play/anorm_2.9.1/jars/anorm_2.9.1-2.1-SNAPSHOT.jar)
[info]      org.biojava:sequencing:1.8.2: (Artifact(sequencing,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/sequencing/jars/sequencing-1.8.2.jar)
[info]      com.google.guava:guava:11.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.1.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      org.biojava:core:1.8.2: (Artifact(core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/core/jars/core-1.8.2.jar)
[info]      commons-dbcp:commons-dbcp:1.2.2: (Artifact(commons-dbcp,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.2.2.jar)
[info]      commons-pool:commons-pool:1.3: (Artifact(commons-pool,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.3.jar)
[info]      org.biojava:bytecode:1.8.2: (Artifact(bytecode,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/bytecode/jars/bytecode-1.8.2.jar)
[info]  compile-internal:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]      com.h2database:h2:1.3.162: (Artifact(h2,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.h2database/h2/jars/h2-1.3.162.jar)
[info]      play:anorm_2.9.1:2.1-SNAPSHOT: (Artifact(anorm_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/play/anorm_2.9.1/jars/anorm_2.9.1-2.1-SNAPSHOT.jar)
[info]      org.biojava:sequencing:1.8.2: (Artifact(sequencing,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/sequencing/jars/sequencing-1.8.2.jar)
[info]      com.google.guava:guava:11.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.1.jar)
[info]      org.biojava:core:1.8.2: (Artifact(core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/core/jars/core-1.8.2.jar)
[info]      commons-dbcp:commons-dbcp:1.2.2: (Artifact(commons-dbcp,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.2.2.jar)
[info]      commons-pool:commons-pool:1.3: (Artifact(commons-pool,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.3.jar)
[info]      org.biojava:bytecode:1.8.2: (Artifact(bytecode,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/bytecode/jars/bytecode-1.8.2.jar)
[info]      (EVICTED) com.google.guava:guava:10.0.1
[info]  runtime-internal:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]      com.h2database:h2:1.3.162: (Artifact(h2,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.h2database/h2/jars/h2-1.3.162.jar)
[info]      play:anorm_2.9.1:2.1-SNAPSHOT: (Artifact(anorm_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/play/anorm_2.9.1/jars/anorm_2.9.1-2.1-SNAPSHOT.jar)
[info]      org.biojava:sequencing:1.8.2: (Artifact(sequencing,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/sequencing/jars/sequencing-1.8.2.jar)
[info]      com.google.guava:guava:11.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.1.jar)
[info]      org.biojava:core:1.8.2: (Artifact(core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/core/jars/core-1.8.2.jar)
[info]      commons-dbcp:commons-dbcp:1.2.2: (Artifact(commons-dbcp,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.2.2.jar)
[info]      commons-pool:commons-pool:1.3: (Artifact(commons-pool,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.3.jar)
[info]      org.biojava:bytecode:1.8.2: (Artifact(bytecode,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/bytecode/jars/bytecode-1.8.2.jar)
[info]      (EVICTED) com.google.guava:guava:10.0.1
[info]  test-internal:
[info]      org.scala-lang:scala-library:2.9.1: (Artifact(scala-library,jar,jar,None,List(),None,Map()),/Users/mtomko/.sbt/0.12.0/boot/scala-2.9.1/lib/scala-library.jar)
[info]      com.google.code.findbugs:jsr305:1.3.9: (Artifact(jsr305,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar)
[info]      commons-beanutils:commons-beanutils:1.8.3: (Artifact(commons-beanutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.3.jar)
[info]      commons-logging:commons-logging:1.1.1: (Artifact(commons-logging,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar)
[info]      commons-dbutils:commons-dbutils:1.4: (Artifact(commons-dbutils,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbutils/commons-dbutils/jars/commons-dbutils-1.4.jar)
[info]      com.beust:jcommander:1.20: (Artifact(jcommander,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.20.jar)
[info]      org.scalatest:scalatest_2.9.1:2.0.M5b: (Artifact(scalatest_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-2.0.M5b.jar)
[info]      org.specs2:specs2_2.9.1:1.12.3: (Artifact(specs2_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.specs2/specs2_2.9.1/jars/specs2_2.9.1-1.12.3.jar)
[info]      org.specs2:specs2-scalaz-core_2.9.1:6.0.1: (Artifact(specs2-scalaz-core_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.specs2/specs2-scalaz-core_2.9.1/jars/specs2-scalaz-core_2.9.1-6.0.1.jar)
[info]      junit:junit:4.10: (Artifact(junit,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/junit/junit/jars/junit-4.10.jar)
[info]      org.hamcrest:hamcrest-core:1.1: (Artifact(hamcrest-core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.hamcrest/hamcrest-core/jars/hamcrest-core-1.1.jar)
[info]      com.h2database:h2:1.3.162: (Artifact(h2,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.h2database/h2/jars/h2-1.3.162.jar)
[info]      play:anorm_2.9.1:2.1-SNAPSHOT: (Artifact(anorm_2.9.1,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/play/anorm_2.9.1/jars/anorm_2.9.1-2.1-SNAPSHOT.jar)
[info]      org.biojava:sequencing:1.8.2: (Artifact(sequencing,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/sequencing/jars/sequencing-1.8.2.jar)
[info]      com.google.guava:guava:11.0.1: (Artifact(guava,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.1.jar)
[info]      org.biojava:core:1.8.2: (Artifact(core,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/core/jars/core-1.8.2.jar)
[info]      commons-dbcp:commons-dbcp:1.2.2: (Artifact(commons-dbcp,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.2.2.jar)
[info]      commons-pool:commons-pool:1.3: (Artifact(commons-pool,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.3.jar)
[info]      org.biojava:bytecode:1.8.2: (Artifact(bytecode,jar,jar,None,ArraySeq(master),None,Map()),/Users/mtomko/.ivy2/cache/org.biojava/bytecode/jars/bytecode-1.8.2.jar)
[info]      (EVICTED) com.google.guava:guava:10.0.1
[info]  plugin:
[info]  sources:
[info]  docs:
[info]  pom:
[success] Total time: 1 s, completed Jan 24, 2013 2:03:19 PM
mpeltonen commented 11 years ago

Thanks @mtomko! Now I get it. I understood the original issue wrong, i.e. it was not about depending on (using) libraries that have optional dependencies (i.e. the transitive case), but coding projects that have dependencies marked as optional.

This case is indeed missing from sbt-idea, which came immediately apparent from your 'show update' listing.

Will fix.

mtomko commented 11 years ago

That will be a huge help. I'm not sure I understood Tony's issue completely because I haven't come up against the same problem, so I'm not sure if I just hijacked his bug report, but I have already mistakenly committed build.sbt files that had "optional" commented out.

Thanks, this plugin has really made my life easier already!

mpeltonen commented 11 years ago

Yeah, Tony should verify if this is the same case or different, but the case you describe fits in the issue title anyway and is definitely a bug.

tonymorris commented 11 years ago

Yo there, my issue is exemplified by the scoobi project which has optional dependencies https://github.com/NICTA/scoobi/blob/master/build.sbt#L18

If you sbt gen-idea on this project, now all dependencies are resolved for intellij.

mpeltonen commented 11 years ago

Looks like same case to me. Thanks for the details!

mpeltonen commented 11 years ago

This should now work with latest 1.3.0-SNAPSHOT. At least scoobi seemed to compile in Idea after 'gen-idea' now.

mtomko commented 11 years ago

It appears to work on our internal projects as well. Thanks so much!