【问题标题】:Java Gradle: How to include external jars using java-plugin jar task?Java Gradle:如何使用 java-plugin jar 任务包含外部 jar?
【发布时间】:2012-08-29 03:24:30
【问题描述】:
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任务时,会在项目的build/lib目录下创建foo-client.jar。我需要做的是在同一个目录中包含几个 jar,否则项目将无法正常运行。

我该怎么做?

【问题讨论】:

    标签: java build gradle dependency-management


    【解决方案1】:

    使用 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'
        }
    }
    

    【讨论】:

      【解决方案2】:

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

      task copyLibs(type: Copy) {
          from configurations.runtime
          into "$buildDir/libs"
      }
      

      【讨论】:

        猜你喜欢
        • 2011-02-24
        • 2013-06-08
        • 2020-06-22
        • 1970-01-01
        • 2011-07-10
        • 2014-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多