Java 如何将由Gradle编译的jar安装到本地Gradle存储库文件-2.1而不是Maven存储库中?

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

在我的build.gradle中,我添加了插件:

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'

}