情况如下:
我设法想出了一个简单的解决方案,在“classes”任务之后运行生成器,并将资源写入$buildDir/resources/main/schema
:
ext {
schemaGenerator = "org.something.JsonSchemaGenerator"
serviceContractsDir = file("$buildDir/service-contracts")
schemaOutputDir = file("$buildDir/resources/main/schema")
}
task jsonSchemas(type: Exec) {
dependsOn classes
dependsOn serviceContracts
commandLine "java", "-classpath", sourceSets.main.runtimeClasspath.getAsPath(), schemaGenerator, serviceContractsDir, schemaOutputDir
}
test.dependsOn jsonSchemas
assemble.dependsOn jsonSchemas
这很好,生成的资源随后包含在JAR中
但是当上传人工制品时,它会上传JAR,而不会上传生成的资源。
我试图用正确的方法来做:
ext {
schemaOutputDir = file("$buildDir/generated-resources")
}
sourceSets.main.output.dir schemaOutputDir, builtBy: jsonSchemas
但我最终得到了一个循环依赖,因为Gradle需要资源来构建类,而生成这些资源的任务也取决于类:
出了什么问题:
以下任务之间的循环依赖关系:
:类
---:jsonSchemas
有没有办法将它们添加到适当的源代码集中(如生成的资源
),以便
添加独立于主源集的新源集应该可以做到:
task jsonSchemas(type: Exec) {
// same as above
}
sourceSets {
schema {
output.dir(schemaOutputDir, builtBy: 'jsonSchemas')
}
test {
resources.srcDirs += [sourceSets.schema.output]
}
}
jar {
from sourceSets.schema.output
}
问题内容: 我想使用Gradle任务为 Java 项目生成Java类,类似于Android插件如何使用表示法创建,例如: 用例是我正在开发一个开源应用程序,该应用程序需要使用API密钥和机密。我拥有不致力于我的VCS 的密钥和秘密。 到目前为止,我有这个: 并且有效- 在指定位置生成该文件。但是它非常脆弱。明确命名软件包很容易出错。只要文件可以在其他软件包中生成(例如,在的根目录),只要能够使
我正在使用spring boot部署应用程序 在我的pom里我有: 知道吗?
本文向大家介绍java生成验证码工具类,包括了java生成验证码工具类的使用技巧和注意事项,需要的朋友参考一下 java生成验证码工具类,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我正在使用gradle构建我的项目,使用以下build.gradle文件: 当我输入gradle build命令时,我希望gradle在生成后执行一个任务。 我在网上找到了一个,我尝试了多种方法都失败了。 如果你知道怎么做,请告诉我。
问题内容: 我有一个项目{a,b,c,d}的列表,当我需要生成所有可能的组合时, 您可以选择任意数量的项目 顺序不重要(ab = ba) 空集不被考虑 如果我们抓住可能性,那就应该是 我使用了以下递归方法: 当数组大时,有没有更有效的方法? 问题答案: 将组合视为一个二进制序列,如果所有4个都存在,则得到1111,如果缺少第一个字母,则得到0111,依此类推。对于n个字母,我们将得到2 ^ n -