forked from loafle/openapi-generator-original
This commit is contained in:
parent
2db7b0b177
commit
05b9a899e4
@ -418,6 +418,12 @@ apply plugin: 'org.openapi.generator'
|
|||||||
|Boolean
|
|Boolean
|
||||||
|false
|
|false
|
||||||
|Defines whether the output directory should be cleaned up before generating the output.
|
|Defines whether the output directory should be cleaned up before generating the output.
|
||||||
|
|
||||||
|
|dryRun
|
||||||
|
|Boolean
|
||||||
|
|false
|
||||||
|
|Defines whether the generator should run in dry-run mode. In dry-run mode no files are written and a summary about
|
||||||
|
file states is output.
|
||||||
|===
|
|===
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
|
@ -149,6 +149,7 @@ class OpenApiGeneratorPlugin : Plugin<Project> {
|
|||||||
generateAliasAsModel.set(generate.generateAliasAsModel)
|
generateAliasAsModel.set(generate.generateAliasAsModel)
|
||||||
engine.set(generate.engine)
|
engine.set(generate.engine)
|
||||||
cleanupOutput.set(generate.cleanupOutput)
|
cleanupOutput.set(generate.cleanupOutput)
|
||||||
|
dryRun.set(generate.dryRun)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -359,6 +359,11 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
|
|||||||
*/
|
*/
|
||||||
val cleanupOutput = project.objects.property<Boolean>()
|
val cleanupOutput = project.objects.property<Boolean>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines whether the generator should run in dry-run mode.
|
||||||
|
*/
|
||||||
|
val dryRun = project.objects.property<Boolean>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
applyDefaults()
|
applyDefaults()
|
||||||
}
|
}
|
||||||
@ -381,5 +386,6 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
|
|||||||
skipValidateSpec.set(false)
|
skipValidateSpec.set(false)
|
||||||
generateAliasAsModel.set(false)
|
generateAliasAsModel.set(false)
|
||||||
cleanupOutput.set(false)
|
cleanupOutput.set(false)
|
||||||
|
dryRun.set(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -521,6 +521,13 @@ open class GenerateTask : DefaultTask() {
|
|||||||
@Input
|
@Input
|
||||||
val cleanupOutput = project.objects.property<Boolean>()
|
val cleanupOutput = project.objects.property<Boolean>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines whether the generator should run in dry-run mode.
|
||||||
|
*/
|
||||||
|
@Optional
|
||||||
|
@Input
|
||||||
|
val dryRun = project.objects.property<Boolean>()
|
||||||
|
|
||||||
private fun <T : Any?> Property<T>.ifNotEmpty(block: Property<T>.(T) -> Unit) {
|
private fun <T : Any?> Property<T>.ifNotEmpty(block: Property<T>.(T) -> Unit) {
|
||||||
if (isPresent) {
|
if (isPresent) {
|
||||||
val item: T? = get()
|
val item: T? = get()
|
||||||
@ -822,6 +829,11 @@ open class GenerateTask : DefaultTask() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dryRunSetting = false
|
||||||
|
dryRun.ifNotEmpty { setting ->
|
||||||
|
dryRunSetting = setting
|
||||||
|
}
|
||||||
|
|
||||||
val clientOptInput = configurator.toClientOptInput()
|
val clientOptInput = configurator.toClientOptInput()
|
||||||
val codegenConfig = clientOptInput.config
|
val codegenConfig = clientOptInput.config
|
||||||
|
|
||||||
@ -838,7 +850,7 @@ open class GenerateTask : DefaultTask() {
|
|||||||
val out = services.get(StyledTextOutputFactory::class.java).create("openapi")
|
val out = services.get(StyledTextOutputFactory::class.java).create("openapi")
|
||||||
out.withStyle(StyledTextOutput.Style.Success)
|
out.withStyle(StyledTextOutput.Style.Success)
|
||||||
|
|
||||||
DefaultGenerator().opts(clientOptInput).generate()
|
DefaultGenerator(dryRunSetting).opts(clientOptInput).generate()
|
||||||
|
|
||||||
out.println("Successfully generated code to ${outputDir.get()}")
|
out.println("Successfully generated code to ${outputDir.get()}")
|
||||||
} catch (e: RuntimeException) {
|
} catch (e: RuntimeException) {
|
||||||
|
@ -458,4 +458,45 @@ class GenerateTaskDslTest : TestBase() {
|
|||||||
assertEquals(TaskOutcome.FAILED, result.task(":openApiGenerate")?.outcome,
|
assertEquals(TaskOutcome.FAILED, result.task(":openApiGenerate")?.outcome,
|
||||||
"Expected a failed run, but found ${result.task(":openApiGenerate")?.outcome}")
|
"Expected a failed run, but found ${result.task(":openApiGenerate")?.outcome}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `openapiGenerate should set dryRun flag`() {
|
||||||
|
// Arrange
|
||||||
|
val projectFiles = mapOf(
|
||||||
|
"spec.yaml" to javaClass.classLoader.getResourceAsStream("specs/petstore-v3.0.yaml")
|
||||||
|
)
|
||||||
|
withProject(
|
||||||
|
"""
|
||||||
|
plugins {
|
||||||
|
id 'org.openapi.generator'
|
||||||
|
}
|
||||||
|
openApiGenerate {
|
||||||
|
generatorName = "kotlin"
|
||||||
|
inputSpec = file("spec.yaml").absolutePath
|
||||||
|
outputDir = file("build/kotlin").absolutePath
|
||||||
|
apiPackage = "org.openapitools.example.api"
|
||||||
|
invokerPackage = "org.openapitools.example.invoker"
|
||||||
|
modelPackage = "org.openapitools.example.model"
|
||||||
|
configOptions = [
|
||||||
|
dateLibrary: "java8"
|
||||||
|
]
|
||||||
|
dryRun = true
|
||||||
|
}
|
||||||
|
""".trimIndent(),
|
||||||
|
projectFiles
|
||||||
|
)
|
||||||
|
|
||||||
|
// Act
|
||||||
|
val result = GradleRunner.create()
|
||||||
|
.withProjectDir(temp)
|
||||||
|
.withArguments("openApiGenerate")
|
||||||
|
.withPluginClasspath()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertTrue(
|
||||||
|
result.output.contains("Dry Run Results:"),
|
||||||
|
"Dry run results message is missing."
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,6 +107,7 @@ mvn clean compile
|
|||||||
| `skipIfSpecIsUnchanged` | `codegen.skipIfSpecIsUnchanged` | Skip the execution if the source file is older than the output folder (`false` by default. Can also be set globally through the `codegen.skipIfSpecIsUnchanged` property)
|
| `skipIfSpecIsUnchanged` | `codegen.skipIfSpecIsUnchanged` | Skip the execution if the source file is older than the output folder (`false` by default. Can also be set globally through the `codegen.skipIfSpecIsUnchanged` property)
|
||||||
| `addCompileSourceRoot` | `openapi.generator.maven.plugin.addCompileSourceRoot` | Add the output directory to the project as a source root, so that the generated java types are compiled and included in the project artifact (`true` by default). Mutually exclusive with `addTestCompileSourceRoot`.
|
| `addCompileSourceRoot` | `openapi.generator.maven.plugin.addCompileSourceRoot` | Add the output directory to the project as a source root, so that the generated java types are compiled and included in the project artifact (`true` by default). Mutually exclusive with `addTestCompileSourceRoot`.
|
||||||
| `addTestCompileSourceRoot` | `openapi.generator.maven.plugin.addTestCompileSourceRoot` | Add the output directory to the project as a test source root, so that the generated java types are compiled only for the test classpath of the project (`false` by default). Mutually exclusive with `addCompileSourceRoot`.
|
| `addTestCompileSourceRoot` | `openapi.generator.maven.plugin.addTestCompileSourceRoot` | Add the output directory to the project as a test source root, so that the generated java types are compiled only for the test classpath of the project (`false` by default). Mutually exclusive with `addCompileSourceRoot`.
|
||||||
|
| `dryRun` | `openapi.generator.maven.plugin.dryRun` | Defines whether the generator should run in dry-run mode. In dry-run mode no files are written and a summary about file states is output ( `false` by default).
|
||||||
| `environmentVariables` | N/A | deprecated. Use globalProperties instead.
|
| `environmentVariables` | N/A | deprecated. Use globalProperties instead.
|
||||||
| `globalProperties` | N/A | A **map** of items conceptually similar to "environment variables" or "system properties". These are available to all aspects of the generation flow. See [Global Properties](https://openapi-generator.tech/docs/globals/) for list of available properties.
|
| `globalProperties` | N/A | A **map** of items conceptually similar to "environment variables" or "system properties". These are available to all aspects of the generation flow. See [Global Properties](https://openapi-generator.tech/docs/globals/) for list of available properties.
|
||||||
| `configHelp` | `codegen.configHelp` | dumps the configuration help for the specified library (generates no sources)
|
| `configHelp` | `codegen.configHelp` | dumps the configuration help for the specified library (generates no sources)
|
||||||
|
@ -460,6 +460,9 @@ public class CodeGenMojo extends AbstractMojo {
|
|||||||
@Parameter(defaultValue = "false", property = "openapi.generator.maven.plugin.addTestCompileSourceRoot")
|
@Parameter(defaultValue = "false", property = "openapi.generator.maven.plugin.addTestCompileSourceRoot")
|
||||||
private boolean addTestCompileSourceRoot = false;
|
private boolean addTestCompileSourceRoot = false;
|
||||||
|
|
||||||
|
@Parameter(defaultValue = "false", property = "openapi.generator.maven.plugin.dryRun")
|
||||||
|
private Boolean dryRun = false;
|
||||||
|
|
||||||
// TODO: Rename to global properties in version 5.1
|
// TODO: Rename to global properties in version 5.1
|
||||||
@Parameter
|
@Parameter
|
||||||
protected Map<String, String> environmentVariables = new HashMap<>();
|
protected Map<String, String> environmentVariables = new HashMap<>();
|
||||||
@ -867,7 +870,7 @@ public class CodeGenMojo extends AbstractMojo {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
adjustAdditionalProperties(config);
|
adjustAdditionalProperties(config);
|
||||||
new DefaultGenerator().opts(input).generate();
|
new DefaultGenerator(dryRun).opts(input).generate();
|
||||||
|
|
||||||
if (buildContext != null) {
|
if (buildContext != null) {
|
||||||
buildContext.refresh(new File(getCompileSourceRoot()));
|
buildContext.refresh(new File(getCompileSourceRoot()));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user