Run over self. A good approach would be having a dependency that brings in the same artifacts, under a different name for them, to avoid:
[debug] resolving dependencies for configuration 'provided'
[debug] == resolving dependencies for canve#compiler-plugin_2.11;0.0.1 [provided]
[error] a module is not authorized to depend on itself: canve#compiler-plugin_2.11;0.0.1
java.lang.IllegalArgumentException: a module is not authorized to depend on itself: canve#compiler-plugin_2.11;0.0.1
at org.apache.ivy.core.resolve.IvyNodeCallers.addCaller(IvyNodeCallers.java:167)
at org.apache.ivy.core.resolve.IvyNode.addCaller(IvyNode.java:1076)
at org.apache.ivy.core.resolve.IvyNode.getDependencies(IvyNode.java:369)
at org.apache.ivy.core.resolve.VisitNode.getDependencies(VisitNode.java:313)
at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:792)
at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:722)
at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:594)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:234)
at org.apache.ivy.Ivy.resolve(Ivy.java:517)
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:266)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:175)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:157)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:128)
at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:56)
which we get if we naively add the plugin to itself as if it were a target project, by placing addSbtPlugin("canve" % "sbt-plugin" % "x.y.z") in project/plugins.
Run over self. A good approach would be having a dependency that brings in the same artifacts, under a different name for them, to avoid:
which we get if we naively add the plugin to itself as if it were a target project, by placing
addSbtPlugin("canve" % "sbt-plugin" % "x.y.z")inproject/plugins.