当前,我正在测试Gradle作为Maven的替代方案。在我的项目中,有一些第三方的罐子,在任何(Maven)仓库中都没有。我现在的问题是,我怎么管理它将这些罐子安装到我的本地.gradle存储库中。 (如果可能,我不想使用本地Maven仓库,因为Gradle应该独立运行。)目前,由于缺少罐子,我得到了很多例外。在Maven中,运行install命令非常简单。但是,我的谷歌搜索与Maven安装命令类似的东西并不成功。有人有个想法吗?Gradle:使第三方jar可用于本地gradle存储库
回答
也许我失去了我从你的问题的阅读的东西,假设你的gradle这个回购是flatDir类型的,你应该能够在文件中出现的形式myjar这一-1.0.jar它们复制并解决作为myjar这一版本1.0。
不知道为什么Gradle需要运行maven才能访问本地的maven仓库。你可以定义maven仓库,它应该解决依赖关系。如果需要,您可以使用gradle upload
来推送jar本地或远程maven回购站。在这种情况下,它会执行maven。
我觉得这样的事情应该工作:
dependencies {
files('yourfile.jar')
}
它是否适合你?
你可以包括你的文件系统JAR依赖关系:
dependencies {
runtime files('libs/a.jar', 'libs/b.jar')
runtime fileTree(dir: 'libs', include: '*.jar')
}
您可以更改编译/ testCompile的/ etc ..运行
总之:部署到存储库管理。它可以在本地,在公司LAN上。
的思考这类问题,特别是如果它经常发生的完全不同的方式,是使用一个仓库管理器。这里有一些很棒的开源选项,比如Artifactory,Nexus或者Archiva。
让我们假设你有一个来自可疑来源的jar文件,需要将它包含在你的构建中,直到你有机会重构它。仓库管理器将允许您将文件上传到自己的仓库作为,在这个例子的目的,可疑来源的-UNKNOWN.jar
那么你的build.gradle会是这个样子:
repositories {
mavenRepo urls: "http://your.own.repository/url";
}
dependencies {
compile "dubious:origin:UNKNOWN";
}
有很多其他的优点是能够使用一个仓库管理,例如远程伪影的缓存,删除SCM伪影,分期的版本中,更精细的用户权限,等等。
消极的一面,你会加入其中带有一定的维护开销,让您建立运行的服务器。
取决于大小,如果你的项目,我想。
一个更全面的答案是由亚当·默多克在邮件列表上给出的http://gradle.1045684.n5.nabble.com/Gradle-Make-a-3rd-party-jar-available-to-local-gradle-repository-td1431953.html
随着2010年4月有没有简单的方法来一个新的jar文件添加到您的〜/ .gradle库。目前正在研究这是否已经改变。
截至2014年10月,情况仍然如此 - 因为gradle会对您的jar文件执行md5校验和,您不能简单地将其下载到.gradle/caches下的目录中,并且gradle不会,据我所知,有任何让你获取本地文件并将该文件推送到其缓存的任务。
使用选项(1)使用gradle-1.3从Adam Murdoch发布(已经链接上面:http://gradle.1045684.n5.nabble.com/Gradle-Make-a-3rd-party-jar-available-to-local-gradle-repository-td1431953.html),它的工作原理非常好!
这里他的评论:
- 复制的罐子到本地目录,并使用flatDir()库使用它们离开那里。例如,您可以将它们复制到 $ PROJECTDIR/lib和在生成文件中做到:
库{ flatDir(迪尔斯: 'LIB')}
在lib目录中的文件必须遵循命名方案: name-version-classifier.extension,其中版本和分类是 可选。因此,举例来说,你可以打电话给他们Groovy的1.7.0.jar甚至 groovy.jar
然后,你只需要声明的依赖关系为正常:
依赖{ 编译“常规:常规:1.7。 0' }
有在更详细一点一个flatDir()存储库: http://gradle.org/0.9-preview-1/docs/userguide/dependency_management.html#sec:flat_dir_resolver
- 与上述类似,但使用的常春藤分解器代替flatDir()。这与上述非常相似,但是就名称和位置而言,允许更多的选项。
- 不要声明依赖性打扰。只需将jar文件复制到某个本地目录并添加一个文件依赖项即可。例如,如果 罐子是在$ PROJECTDIR/lib中:
依赖性{ 编译文件树( 'LIB')//这包括所有在 'LIB' 在编译类路径中的文件}
在更多细节: http://gradle.org/0.9-preview-1/docs/userguide/dependency_management.html#N12EAD
- 使用Maven安装到依赖安装到你的本地Maven缓存,并使用Maven缓存作为一个仓库:
个库{ mavenRepo(网址:新文件(System.properties [ '的user.home'], '的.m2 /存储库')toURI()的toURL()。)}
- 1. Gradle ModuleVersionNotFoundException对于本地存储库中的Maven依赖关系
- 2. gradle配置使用maven本地存储库
- 3. 使用gradle从存储库下载apk
- 4. 如何使Gradle存储库指向本地目录
- 5. Gradle:如何将Android库发布到本地存储库
- 6. Android库 - 使用Gradle将多个变体发布到本地Maven存储库
- 7. 使用自定义提供.jar文件时使用gradle(不是存储库)?
- 8. 像Gradle这样的本地存储库的Maven
- 9. Gradle压缩包装:从存储库复制Jar文件
- 10. Maven:无法将第三方JAR部署到远程存储库
- 11. 如何使用Gradle创建可重用源的Jar库?
- 12. Gradle:安装一堆jar到本地Maven仓库
- 13. 发布单个第三方jar到sbt的本地仓库
- 14. 控制Gradle插件中使用的第三方库的日志输出
- 15. 如何将工件从第三方存储库下载到本地存储库并稍后使用IT?
- 16. Localytics是否有Maven/Gradle存储库?
- 17. 如何使第三方.jar可用于我的.jsp页面?
- 18. 构建用于离线开发的Gradle存储库
- 19. 如何使用Gradle构建依赖于另一个JAR的JAR
- 20. 使用gradle,我该如何表达编译时只依赖于本地jar?
- 21. 从第三方读取Linux存储库
- 22. 播放!:使用与本地存储库不同的jar版本
- 23. 对本地依赖项使用Gradle
- 24. Artifactory第三方jar
- 25. 如何查找未使用的Gradle存储库
- 26. 无法使用Gradle将工件发布到Nexus Maven存储库
- 27. 使用scp和私钥将gradle发布到maven存储库
- 28. Gradle:使用Spring Boot Dependencies创建'fat jar'
- 29. 我如何使用Gradle来下载JAR?
- 30. 重复的类使用Gradle输出jar
确定,对不起天真的问题,但如果我把文件('C:/Temp/myFile.jar')它会工作或我需要添加如此额外的环境变量? – Gabriel 2014-10-03 09:46:51