Java 如何将由Gradle编译的jar安装到本地Gradle存储库文件-2.1而不是Maven存储库中?
在我的build.gradle中,我添加了插件:Java 如何将由Gradle编译的jar安装到本地Gradle存储库文件-2.1而不是Maven存储库中?,java,gradle,jar,Java,Gradle,Jar,在我的build.gradle中,我添加了插件: apply plugin: 'maven' 然后使用“gradleinstall”,我可以将结果jar复制到maven存储库中:~/.m2/存储库 但是,我的Gradle存储库位于~/.Gradle/caches/modules-2/files-2.1中。如何将jar安装到此存储库中?mavenLocal()的解决方法如下: 为了使用非标准本地maven存储库,您可以在build.gradle中使用以下配置: 存储库{ 马文{ url'/Use
apply plugin: 'maven'
然后使用“gradleinstall”,我可以将结果jar复制到maven存储库中:~/.m2/存储库
但是,我的Gradle存储库位于~/.Gradle/caches/modules-2/files-2.1中。如何将jar安装到此存储库中?mavenLocal()的解决方法如下:
为了使用非标准本地maven存储库,您可以在build.gradle中使用以下配置:
存储库{
马文{
url'/Users/manuelj/apache/maven/repository'
}
}一个build.gradle示例,用于创建Jar文件及其logback依赖项。使用mavenlocale()
参考如果您坚持要操作缓存,那么您最好编写一个shell脚本,手动替换缓存中最新的JAR 原因是Gradle没有内置此功能,因为Gradle在严格意义上使用了“本地缓存”的概念,而Maven使用的是“本地存储库” 区别在于,您永远不应该手动将文件保存到本地缓存
要解决您的问题,建议的方法是:假设项目A是项目B的依赖项。然后您可以在项目A中调用
publishtoavenlocal
命令来刷新依赖项。在项目B的gradle.build
中添加mavenLocal()
存储库,这样每次构建项目B时,gradle都会在解决依赖项A时检查本地存储库。对我有效的是gradle安装-Dmaven.repo.local=文件夹的/path/of/the
我不知道您正在使用哪个IDE,但在eclipse中您可以添加新的运行配置,在Gradle taks add
install
和program arguments-Dmaven.repo.local=the/path/of/the/folder
中,请注意我的目标不是使用非标准存储库,我的目标是发布我正在更新我的答案。结果jar将安装在哪里?为什么它安装在哪里对您很重要?Gradle将使用maven repo,你为什么要这样做?Gradle依赖项缓存与Maven存储库不同。这个问题受到影响。在我的例子中,我的人工回购协议失败了,其他工程师正在对此进行调查。与此同时,我想通过从本地缓存获取依赖项来构建我的应用程序。对于像我这样来自Maven的毕业生来说,这篇文章的第2行和第3行很重要。本地开发的一个常见用法是,将jar添加到本地repo中,一旦完成测试,您推动代码进行开发,并在artifactory中发布快照jar。请注意,在artifactory中发布的jar包含与在本地工作时相同的快照版本。现在,您希望在本地获取上传的快照jar,而不是maven本地中的快照jar。这真是荒谬:能够安装jar是多级CI构建的关键特性。我希望gradle能停止依赖maven(回购协议),自己变得功能丰富。
apply plugin: 'java'
apply plugin: 'eclipse'
version = '1.0'
sourceCompatibility = 1.7
target Compatibility = 1.7
//create a single Jar with all dependencies
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': version,
'Main-Class': 'com.mkyong.DateUtils'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it :
zipTree(it)
}
}
with jar
}
//Get dependencies from Maven central repository
repositories {
mavenCentral()
}
//Project dependencies
dependencies {
compile 'ch.qos.logback:logback-classic:1.1.2'
}