构建gradle项目

时间:2016-08-26 01:38:39

标签: gradle gradlew

所以,它真的耗费了我很多时间。我正在尝试构建一个使用这些jar的项目(使用gradle) 'org.codehaus.groovy.modules.http建设者:HTTP建设者:0.7.2' 'org.apache.httpcomponents',名称:'httpclient',版本:'4.5.1'

build.gradle(登台插件)的内容:

apply plugin:'groovy'
apply plugin:'idea'
apply plugin:'eclipse'

sourceCompatibility = targetCompatibility = "1.7"

def nexusUrl = "http://nexus/nexus/content/groups/artifacts"

project.ext.set("nexusUsername", nexusUsername)

dependencies{
    compile gradleApi()
    compile localGroovy()
    testCompile 'junit:junit:4.11'
    testCompile 'org.spockframework:spock-core:0.7-groovy-1.8'

      compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.2@jar'
      compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.0.1'
      //compile 'maven-plugins:maven-cobertura-plugin:1.2@plugin'
}

jar {
  baseName=projectName
}

http-builder jar使用了不可用的cobertura-plugin 1.3.plugin。为了避免传递依赖,我使用了http-builder:0.7.2@jar

httpclient jar有DefaultHttpClient类。

然后,我在另一个项目中使用这个项目。现在,我在构建这个项目时遇到了错误

项目ABC中build.gradle的内容:

buildscript {
    dependencies {
        classpath 'com.abc.gradle.plugins:staging-plugin:2.0.0-SNAPSHOT@jar'
    }
}

我必须使用@jar,因为如果我不使用,http-builder将尝试下载cobertura:1.3.plugin,这是不可用的(但我认为这不是问题)。 但是当我运行这个项目时,它会产生NoClassDefFoundError错误。

运行此proct的命令:./ gradlew createStagingRepository

引起:java.lang.NoClassDefFoundError:org.apache.http.impl.client.DefaultHttpClient

httpclient-4.5.2.jar的内容

jar tvf httpclient-4.5.2.jar  | grep "DefaultHttpClient"
  2647 Sun Feb 21 17:04:42 PST 2016 org/apache/http/impl/client/SystemDefaultHttpClient.class
  3537 Sun Feb 21 17:04:42 PST 2016 org/apache/http/impl/client/DefaultHttpClient.class
  8123 Sun Feb 21 17:04:42 PST 2016 org/apache/http/impl/conn/DefaultHttpClientConnectionOperator.class

0 个答案:

没有答案