Robin Green
Robin Green

Reputation: 33103

How to make Play framework 1.2.x resolve dependencies published locally by sbt, transitively?

I'm using Play framework with the Scala module. I've factored out some code into a separate library and built it and published it locally using sbt publish-local. Now I need play dependencies to find that library and its dependencies.

What I have so far is this, in my ~/.ivy2/ivysettings.xml file:

<ivy-settings>
<settings defaultResolver="chain"/>
  <resolvers>
    <chain name="chain">
      <filesystem name="libraries">
        <ivy pattern="${ivy.settings.dir}/local/[organisation]/[artifact]/[revision]/ivys/ivy.xml"/>
        <artifact pattern="${ivy.settings.dir}/local/[organisation]/[artifact]/[revision]/[ext]s/[artifact].[ext]" />
      </filesystem>
      <ibiblio name="ibiblio" m2compatible="true" />
    </chain>
  </resolvers>
</ivy-settings>

This enables Play to find my library, but unfortunately it ignores its dependencies and falsely claims that I don't need them any more and they can be deleted from lib/.

Upvotes: 2

Views: 601

Answers (1)

Robin Green
Robin Green

Reputation: 33103

Using the --debug option to play dependencies, I found that for some reason, Play was using "ivy" as the artifact name for the ivy file, instead of my library's name. So as a quick workaround, since I only have one library at the moment, I just changed [artifact] to my actual artifact name in the ivy element above.

I filed a Play bug report.

Upvotes: 2

Related Questions