我有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构建报告它正在下载jar文件,但是在构建之后,它仍然是“无法解析com.my.project:my-project:0.0.1-SNAPSHOT
”。您是否有解决此问题的想法,或者我是否有错误的解决方案来解决整个问题?
答案 0 :(得分:0)
感谢您的提问:)
在我看来,您的项目联系太紧密了。
我建议您在Project 1中构建jar文件,然后使用一条消息将其提交到Project 2,该消息包括该jar来源的Project 1的提交哈希。
当您需要查找问题时,这将使事情更容易管理,同时也消除了跨git项目任务(例如您上面描述的任务)的必要性。而且,您的git项目保持独立。
考虑一下在机器上不存在项目1或硬编码URL中不再存在项目1时尝试构建项目2的人为错误,这会造成麻烦。 如果还有其他问题,请告诉我。