Right, Ivy has a default for local in its ivysettings, but I think sbt/gradle just mimic this as opposed to use the raw ivy settings (I'm not fully aware of why sbt doesn't use it directly, I think so users can turn it off using sbt-only settings)
Here's the Ivy 1.4 config for local: <ivysettings> <property name="ivy.local.default.root" value="${ivy.default.ivy.user.dir}/local" override="false"/> <property name="ivy.local.default.ivy.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <resolvers> <filesystem name="local"> <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" /> <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" /> </filesystem> </resolvers> </ivysettings> Hope that helps answer "what default" is :) As I said, we modify the artifact pattern slightly to handle sbt plugins and binary revisioning, but the pattern should be compatible with the above and only sbt has to care about sbt-plugins (theoretically). On Thu, Apr 10, 2014 at 11:58 AM, Ben McCann <b...@benmccann.com> wrote: > Hey Josh, thanks for the pointers. I'm mainly curious about ~/.ivy2/local. > I'm surprised you say you don't think there *is* a standard. Ivy must use > some pattern by default when publishing to ~/.ivy2/local, right? Hopefully > for compatibility SBT would do the same thing as Ivy there. > > Thanks, > Ben > > > On Thu, Apr 10, 2014 at 5:48 AM, Josh Suereth <joshua.suer...@gmail.com > >wrote: > > > Sorry, send that a bit too early, here's the hook to local where we adapt > > the pattern for sbt plugins: > > > > > > > https://github.com/sbt/sbt/blob/0.13/ivy/src/main/scala/sbt/Resolver.scala#L281-L285 > > > > > > If you're not resolving sbt plugins, that shouldn't matter. > > > > > > On Thu, Apr 10, 2014 at 8:47 AM, Josh Suereth <joshua.suer...@gmail.com > > >wrote: > > > > > Ben - > > > > > > Do you mean "~/.ivy2/local" or "~/.ivy2/cache" ? > > > > > > AFAIK the cache bit is the same in sbt as for Ivy, caveat that we try > to > > > ignore what resolver an artifact came from in the store. However, > > Gradle's > > > cache is a completely different beast, so the I don't think the two are > > > compatible. > > > > > > Now for the local-project, we could very-well have something > non-standard > > > in there, although I don't think there *is* a standard. Here's the > > > code/pattern for resolving from the local repo: > > > > > > > > > > > > https://github.com/sbt/sbt/blob/0.13/launch/src/main/scala/xsbt/boot/Update.scala#L379-L387 > > > > > > > > > https://github.com/sbt/sbt/blob/0.13/launch/src/main/scala/xsbt/boot/BootConfiguration.scala#L30-L32 > > > > > > Also, for loading sbt-plugins we add the additional "scala/sbt" > universe > > > to the pattern: > > > > > > > > > Someone more qualified than I in the Ivy can answer whether that's a > > > "default" thing. > > > > > > > > > > > > > > > On Thu, Apr 10, 2014 at 3:00 AM, Ben McCann <b...@benmccann.com> wrote: > > > > > >> Hi, > > >> > > >> I'm using SBT and Gradle as build systems. I want them to publish to > and > > >> read from ~/.ivy2 but they use and expect default layouts and so they > do > > >> not cooperate well each other using this directory. I'm wondering > which > > >> one > > >> is right and which one is wrong. > > >> > > >> Also, I downloaded the latest ivy source to check what layout it > uses. I > > >> noticed the fields IvyRepResolver.DEFAULT_IVYPATTERN and > > >> IvyRepResolver.DEFAULT_IVYROOT are unused. Should they be removed? The > > >> latter points to what appears to be an abandoned domain as the page is > > >> filled with adds and a link stating "Buy this domain". > > >> > > >> Thanks, > > >> Ben > > >> > > >> -- > > >> about.me/benmccann > > >> > > > > > > > > > > > > -- > about.me/benmccann >