是否有更好的方法为客户端应用程序提供多个主要的xsd版本

时间:2019-05-24 13:01:45

标签: gradle groovy xsd versioning

我想从中心位置向内部软件提供几个具有多个主要版本的xsd文件,并且不知道我的方法是否正确。

使用几个xml模式来验证xml文件。这些反过来又用于在(脱机)应用程序之间传输数据并将它们存储在网络驱动器上。这些应用程序必须支持多个主要版本,并在离线时提供基本功能。

将xsd文件打包并作为一个工件上传到Artifactory。这些应用程序使用Java和Gradle,但不应排除其他编程语言和构建工具。当前的解决方案如下所示:

configurations {
    schemata_0
    schemata_1
    schemata_2
}

dependencies {
    schemata_0 "com.pany.group:schemata:0.5.8"
    schemata_1 "com.pany.group:schemata:1.4.5"
    schemata_2 "com.pany.group:schemata:2.0.3"
}

def unzipBase = 'build/tmp/expandedArchives/'

task unzipSchemata_0(type:Copy) {
    configurations.schemata_0.asFileTree.each {
        from(zipTree(it))
        into "${unzipBase}${it.name}"
    }
}
task unzipSchemata_1(type:Copy) {
    configurations.schemata_1.asFileTree.each {
        from(zipTree(it))
        into "${unzipBase}${it.name}"
    }
}
task unzipSchemata_2(type:Copy) {
    configurations.schemata_2.asFileTree.each {
        from(zipTree(it))
        into "${unzipBase}${it.name}"
    }
}

sourceSets {
    main {
        resources {
            srcDir(unzipBase)
        }
    }
}

processResources.dependsOn unzipSchemata_0, unzipSchemata_1, unzipSchemata_2

我曾考虑过将代码拆分为Gradle插件,但想在此之前获得有关通用方法的一些意见。

0 个答案:

没有答案