(请注意,我是Eclipse / Gradle的新手,所以请耐心等待。)
我正在尝试修改以下项目,因为我想进行自定义:https://github.com/Swagger2Markup/swagger2markup
反过来,我想在以下项目中使用修改后的二进制文件:https://github.com/Swagger2Markup/swagger2markup-gradle-project-template
总的来说,我认为我需要执行以下步骤:
我认为通过将Gradle项目导入Eclipse,转到Gradle Tasks,右键单击“jar”并运行任务,我得到了第1步。生成.jar。
之后,我下载模板项目并将生成的.jar复制到模板项目的libs文件夹中。然后我修改build.gradle:
我在buildscript>下注释掉以下行。依赖
//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
。)
无论我做什么,模板项目似乎都下载了远程(未修改的)二进制文件。
如何强制项目使用本地文件?
答案 0 :(得分:0)
问题是依赖项也在插件中声明,如下所示:
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 { ... }