【发布时间】:2016-02-29 00:30:52
【问题描述】:
我有一个 maven 项目,它会生成一个 jar 文件,我想在另一个 sbt 项目中使用它。有什么方法可以将 jar 文件发布到 .ivy 而不是 .m2 中?
我尝试将jar文件放在sbt项目下的libs中,但它不起作用。并且使用 mvn 将 jar 安装到 .m2 也不行。
【问题讨论】:
我有一个 maven 项目,它会生成一个 jar 文件,我想在另一个 sbt 项目中使用它。有什么方法可以将 jar 文件发布到 .ivy 而不是 .m2 中?
我尝试将jar文件放在sbt项目下的libs中,但它不起作用。并且使用 mvn 将 jar 安装到 .m2 也不行。
【问题讨论】:
据我了解,您有一个 Maven 项目和一个 SBT 项目。 SBT 项目取决于您的 maven 项目生成的工件。
您询问如何将 maven 生成的工件发布到您的本地 .ivy,以便 SBT 项目可以获取它。
您可以使用ant task in the maven build 来实现这一点。
不过我想建议不同的角度:
只需将resolvers += Resolver.mavenLocal 添加到您的sbt 构建定义中,如果您不想污染主构建定义,请将该行添加到主构建定义旁边的local.sbt 文件中。 SBT 合并在项目根目录中找到的所有.sbt 文件。
如果您希望构建可以在本地计算机之外轻松复制,这将特别有用。 这个想法只是将 maven 项目发布到一个实际的服务器,要么是用于专有代码的内部 nexus/artifactory 服务器,要么是公共工件托管(例如 bintray) 我一直使用 bintray 发布开源项目的自定义构建,同时等待 PR 合并到 master 并发布官方构建。
将您的工件服务器作为解析器添加到 SBT 项目中,一切顺利:)
【讨论】: