Gradle依赖管理控制(开发和分发模式)

时间:2015-11-24 12:03:36

标签: java gradle dependency-management

大家好!首先,我很抱歉这个糟糕的头衔。我不知道如何准确地描述我的问题。我有一个像这样的当前build.gradle:

/*** Gradle build file for ProjectA ***/

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'ivy-publish'

sourceCompatibility=1.6

group = 'no.sample.project.client'
version='2.0.4.7'


repositories {
    ivy {
        url "K://development/shared-libs/ivy2"
    }

    mavenCentral();
}

dependencies {
//  compile project(':ProjectB')
//  compile project(':ProjectC')
//  compile project(':ProjectD')
    compile 'commons-io:commons-io:2.4+'
    compile 'org.apache.commons:commons-lang3:3.1+'
    compile 'commons-validator:commons-validator:1.4.0+'
    compile 'com.google.code.gson:gson:2.2.4+'
    compile 'com.itextpdf:itextpdf:5.5.3'
    compile 'com.miglayout:miglayout-swing:4.2'
    compile 'org.swinglabs:swingx:1.6.1'
    compile 'com.jgoodies:jgoodies-common:1.7.0'
    compile 'com.jgoodies:jgoodies-binding:2.10.0'
    compile 'no.sample.project.common:ProjectB:1.0.3.0'
    compile 'no.sample.project.common:ProjectC :1+'
    compile 'no.sample.project.client:ProjectD:2.+'
    compile 'org.tigris.gef:gef:0.13.8'
//  compile files('tmpLib/gef-0.13.8.jar')
}

// Defines what and where to publish.
publishing {
    publications {
        ivyJava(IvyPublication) {
            from components.java
        }
    }

    repositories {
        ivy {
              url "K://development/shared-libs/ivy2"
        }
    }

//xlint . has something to do with javaCompile
allprojects {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked"
    }
}
}

其他项目(例如ProjectF)正在使用ProjectA,当我们需要调试时会出现问题。假设ProjectF有错误,错误在ProjectA中。我们无法直接访问ProjectA,因为它是一个jar,当我们不部署时,我们无法附加源代码。 (我们当然不希望将源代码提供给客户端。)我想要实现的是我们在使用/调试ProjectF(开发)时添加ProjectA本身作为依赖项,但是发布项目使用唯一的ProjectA的JAR文件作为依赖项。

我希望我已经足够清楚,请不要犹豫,不要问任何事情。

PS。

对此问题的修改可能非常有用。我只是很擅长解释并给出一个好头衔。

0 个答案:

没有答案