如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?
Posted
技术标签:
【中文标题】如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?【英文标题】:How to add a jar file that is in a git repository as a dependency in gradle? 【发布时间】:2019-05-18 17:53:08 【问题描述】:我有 2 个项目,我正在将项目 1 的一些类文件作为 jar 文件发布到 bitbucket。现在我需要以某种方式将该 jar 文件作为依赖项包含在项目 2 中。这是项目 1 build.gradle 中的发布代码(我使用的是 gradle-git-publish 库 gradle 插件):
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 文件,但在 build 之后它仍然是“无法解析 com.my.project:my-project:0.0.1-SNAPSHOT
”。您对如何解决此问题有任何想法,还是我用错误的解决方案来解决整个问题?
【问题讨论】:
【参考方案1】:感谢您的提问:) 在我看来,您的项目联系得太紧密了。 我建议您在项目 1 中构建您的 jar 文件,然后将其提交到项目 2,其中包含一条消息,其中包含该 jar 来自的项目 1 的提交哈希。 当您需要发现问题时,这将使事情变得更容易管理,同时也消除了跨 git 项目任务的必要性,例如您上面描述的任务。而且,您的 git 项目保持独立。
考虑在机器上不存在项目 1 或硬编码 URL 中不再可用时尝试构建项目 2 的人为错误,这会破坏事情。 如果您有任何其他问题,请告诉我。
【讨论】:
以上是关于如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?的主要内容,如果未能解决你的问题,请参考以下文章