1
apply plugin: 'java'

archivesBaseName = 'foo-client'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
//version = '1.0'
dependencies{
    compile 'foo:bar:1.0-SNAPSHOT', 
            'foo:bar-common:1.0-SNAPSHOT', 
            'foo:bar-communication-api:1.0-SNAPSHOT'
}
repositories{ 
    flatDir{
        dirs '/lib'
    }
}

执行继承jar任务时,会foo-client.jarbuild/lib项目目录下创建。我需要做的是在同一个目录中包含几个 jar,否则项目将无法正常运行。

我怎样才能做到这一点?

4

2 回答 2

0

您可以将外部 jar 定义为运行时依赖项,然后使用复制任务将它们复制到 build/lib,例如:

task copyLibs(type: Copy) {
    from configurations.runtime
    into "$buildDir/libs"
}
于 2012-09-04T14:11:40.397 回答
0

使用 Gradle 1.1 可以解决问题,

apply plugin: 'java'

archivesBaseName = 'foo-client'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

task copyToLib(type: Copy){
    into 'bar\\lib'
    from configurations.runtime
    from configurations.default.allArtifacts.getFiles()
}

dependencies{
    compile 'foo:bar-agent-dist:2.0.0-SNAPSHOT', 
            'foo:bar-common:2.0.0-SNAPSHOT', 
            'foo:bar-communication-api:2.0.0-SNAPSHOT'
}


repositories{ 
    flatDir{
        dirs '/lib'
    }
}
于 2012-09-04T16:36:30.017 回答