使用SBT将工件发布到本地Maven存储库,并在Gradle项目中使用它

时间:2019-01-18 17:44:10

标签: java scala maven gradle sbt

这就是我想要做的:

  • 在我的Scala sbt项目中,我想将工件发布到我的本地 maven存储库
  • 然后,我想在基于Gradle的Java项目中使用此工件

这是我挣扎的地方:

  • 我已经使用sbt publishM2发布了一些成功的工件。这是我的build.sbt
organization := "com.example"
name := "my.messaging"
version := "0.1"
scalaVersion := "2.12.8"
publishMavenStyle := true

这将在此处生成工件:

C:\Users\BAIERLF\.m2\repository\com\example\my-messaging_2.12\0.1

POM文件如下:

<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-messaging_2.12</artifactId>
    <packaging>jar</packaging>
    <description>my.messaging</description>
    <version>0.1</version>
    <name>my.messaging</name>
    <organization>
        <name>com.example</name>
    </organization>
    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.12.8</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>ArtimaMavenRepository</id>
            <name>Artima Maven Repository</name>
            <url>http://repo.artima.com/releases/</url>
            <layout>default</layout>
        </repository>
    </repositories>
</project>

我发现自己无法在Gradle项目中成功使用此工件。这是我尝试链接的方式:

dependencies {
   compile group: 'com.example', name: 'my-messaging_2.12', version: '0.1'
}

我觉得我在这里做错了很多事情,但是如果有人可以给我一个提示,那将是很棒的。

编辑:我再次尝试,结果稍有不同,因此我更新了答案。

1 个答案:

答案 0 :(得分:4)

最近我遇到了类似的问题,并通过在我的build.gradle文件中添加一个mavenLocal()命令来解决了这个问题。我不知道您是否遇到相同的问题,但是值得构建带有完整调试输出的gradle项目并确认它正在尝试从本地存储库中提取信息。