Как добавить файл jar, который находится в репозитории git, как зависимость в gradle? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть 2 проекта, и я публикую некоторые файлы классов проекта 1 в bitbucket как файл jar.Теперь мне нужно как-то включить этот jar-файл в качестве зависимости в проекте 2. Вот код публикации в проекте 1 build.gradle (я использую плагин gradle-git-publish для библиотеки):

task myJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'My Jar',
            'Implementation-Version': '1.0.0'
    }
    baseName = "my-project"
    from sourceSets.main.output
    include 'com/my/project/deep/nested/files/*.class'
    eachFile { FileCopyDetails file -> file.setPath('com/my/project/files/' + file.getName()) }
    includeEmptyDirs = false
    with jar
}

gitPublish {
    repoUri = 'git@bitbucket.org:myusername/my-repo.git'

    branch = 'master'

    contents {
        from 'build/libs'
    }

    commitMessage = 'Latest commit'
}

gitPublishPush.dependsOn myJar

И вот кое-что из того, что я до сих пор пробовал в проекте 2, чтобы добавить jar как зависимость.

repositories {
    mavenCentral()

    maven {
        url 'https://bitbucket.org/myusername/my-project/src/master/'
        artifactUrls 'https://bitbucket.org/myusername/my-project/src/master/'

    }

    ivy {
        url "https://bitbucket.org/myusername/my-project/src/master"
        layout 'pattern' , {
            artifact 'my-project-0.0.1-SNAPSHOT.jar'
        }
    }
}

dependencies {
    implementation 'com.my.project:my-project:0.0.1-SNAPSHOT'
}

Gradle build сообщает, что он загружает файл jar, но после сборки он все еще"Невозможно разрешить com.my.project:my-project:0.0.1-SNAPSHOT".У вас есть какие-либо идеи о том, как решить эту проблему, или я подхожу ко всей проблеме с ошибочным решением?

1 Ответ

0 голосов
/ 18 декабря 2018

Спасибо, что спросили:)
Мне кажется, что ваши проекты слишком тесно связаны.Я бы посоветовал вам создать свой файл jar в Project 1, а затем зафиксировать его в проекте 2 с сообщением, которое включает в себя хэш коммита Project 1, откуда пришел этот jar.Это облегчит управление, когда вам нужно будет найти проблемы, а также устранит необходимость в кросс-проектных задачах, таких как описанные выше.А также, ваши git-проекты остаются независимыми.

Рассмотрим человеческую ошибку при попытке построить проект 2, пока проект 1 отсутствует на компьютере или больше не доступен в жестко заданном URL-адресе, это сломает вещи,Если у вас есть другие вопросы, пожалуйста, дайте мне знать.

...