修改 build.gradle 引用本地jar
Posted
技术标签:
【中文标题】修改 build.gradle 引用本地jar【英文标题】:Modify build.gradle to reference local jar 【发布时间】:2017-07-13 03:04:32 【问题描述】:(请注意,我是 Eclipse / Gradle 的新手,所以请多多包涵。)
我正在尝试修改以下项目,因为我想进行自定义:https://github.com/Swagger2Markup/swagger2markup
反过来,我想在以下项目中使用修改后的二进制文件:https://github.com/Swagger2Markup/swagger2markup-gradle-project-template
总的来说,我认为我需要执行以下步骤:
-
下载该项目的源代码并将其编译为本地 .jar 文件
修改“模板工程”build.gradle 引用本地.jar
我想我通过将 Gradle 项目导入 Eclipse、转到 Gradle Tasks、右键单击“jar”并运行任务来完成第 1 步。生成一个 .jar。
之后,我下载了模板项目并将生成的 .jar 复制到模板项目的 libs 文件夹中。然后我修改build.gradle:
我在 buildscript > dependencies 下注释掉以下行
//classpath "io.github.swagger2markup:swagger2markup:1.0.1"
然后我将以下内容添加到每个 this post 的文件顶部:
apply plugin: 'java'
dependencies
runtime files('libs/swagger2markup-1.3.1-SNAPSHOT.jar')
(我也尝试使用compile
代替runtime
,以及fileTree
。)
无论我做什么,模板项目似乎都在下载远程(未修改的)二进制文件。
如何强制项目使用本地文件?
【问题讨论】:
您的其他依赖项如何?也许它被下载为传递依赖。尝试运行gradle dependencies
,看看你是否可以追踪它来自哪里。
【参考方案1】:
问题在于插件中也声明了依赖项,如您在此处看到的:
https://github.com/Swagger2Markup/swagger2markup-gradle-plugin/blob/master/build.gradle
这意味着依赖管理器会看到并下载它。首先,你必须排除它:
classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.2.0',
exclude group: 'io.github.swagger2markup', module: 'swagger2markup-gradle-plugin'
io.github.swagger2markup:swagger2markup-import-files-ext
也是如此。然后你把 你的 库放在类路径上。所以
buildscript
repositories
jcenter()
mavenCentral()
maven url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/'
//mavenLocal()
dependencies
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.10.1'
classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.2.0',
exclude group: 'io.github.swagger2markup', module: 'swagger2markup-gradle-plugin'
classpath files('libs/swagger2markup-1.3.1-SNAPSHOT.jar') // YOUR VERSION
classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.2.0",
exclude group: 'io.github.swagger2markup', module: 'swagger2markup-gradle-plugin'
classpath "com.bluepapa32:gradle-watch-plugin:0.1.5"
classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1"
编辑:并且您必须将依赖项用作 buildscript 依赖项,这意味着它必须在 buildscript dependencies ...
中声明,而不仅仅是在 dependencies ...
中声明
【讨论】:
以上是关于修改 build.gradle 引用本地jar的主要内容,如果未能解决你的问题,请参考以下文章
android studio 为啥每次build gradle很慢
Android studio中2种build.gradle文件介绍