Skip to content
This repository has been archived by the owner on May 19, 2022. It is now read-only.

Commit

Permalink
Init command's Artifact ID is now the main argument
Browse files Browse the repository at this point in the history
  • Loading branch information
spilth committed Nov 6, 2017
1 parent 01fefb7 commit 79179d9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 27 deletions.
8 changes: 4 additions & 4 deletions src/main/kotlin/org/spilth/initialize/InitializeCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ class InitializeCommand {
@Parameter(names = arrayOf("--groupId", "--group", "-g"), description = "Group ID")
var groupId = "com.example"

@Parameter(names = arrayOf("--artifactId", "--artifact", "-a"), description = "Artifact ID")
var artifactId = "exampleArtifact"
@Parameter(description = "Artifact ID", required = true)
var artifactId : String? = null

@Parameter(names = arrayOf("--language", "-l"), description = "Project Language (java, java8 or kotlin)", required = true, validateWith = arrayOf(LanguageValidator::class))
var language = ""
@Parameter(names = arrayOf("--language", "-l"), description = "Language (java, java8 or kotlin)", required = true, validateWith = arrayOf(LanguageValidator::class))
var language : String? = null

@Parameter(names = arrayOf("--help", "-h"), description = "Show help", help = true)
var isHelp = false
Expand Down
35 changes: 12 additions & 23 deletions src/main/kotlin/org/spilth/initialize/InitializeService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,26 @@ import java.io.InputStreamReader
import java.lang.String.format

class InitializeService(private val initializeCommand: InitializeCommand) {
private data class Archetype (val groupId: String, val artifactId: String, val version: String)

fun initialize() {
val archetypeName: String
var archetypeGroupId = "org.spilth"
val archetypeVersion: String

when (initializeCommand.language) {
"kotlin" -> {
archetypeName = "kotlin-archetype-jvm"
archetypeVersion = "1.1.51"
archetypeGroupId = "org.jetbrains.kotlin"
}

"java8" -> {
archetypeName = "java8-minimal-quickstart"
archetypeVersion = "1.0.0"
}
private val java9Archetype = Archetype(groupId = "org.spilth", artifactId = "java9-minimal-quickstart", version = "1.0.0")
private val java8Archetype = Archetype(groupId = "org.spilth", artifactId = "java8-minimal-quickstart", version = "1.0.0")
private val kotlinArchetype = Archetype(groupId = "org.jetbrains.kotlin", artifactId = "kotlin-archetype-jvm", version = "1.1.51")

else -> {
archetypeName = "java9-minimal-quickstart"
archetypeVersion = "1.0.0"
}
fun initialize() {
val archetype: Archetype = when (initializeCommand.language) {
"kotlin" -> kotlinArchetype
"java8" -> java8Archetype
else -> java9Archetype
}

val command = format(
"mvn archetype:generate --batch-mode -DgroupId=%s -DartifactId=%s -DarchetypeGroupId=%s -DarchetypeArtifactId=%s -DarchetypeVersion=%s -Dmaven.multiModuleProjectDirectory=\$MAVEN_HOME",
initializeCommand.groupId,
initializeCommand.artifactId,
archetypeGroupId,
archetypeName,
archetypeVersion
archetype.groupId,
archetype.artifactId,
archetype.version
)

try {
Expand Down

0 comments on commit 79179d9

Please sign in to comment.