MavenDetector.kt
package com.depanalyzer.parser.maven
import com.depanalyzer.parser.CommandFinder
import java.io.File
object MavenDetector {
private const val MVN_COMMAND = "mvn"
private const val MVN_COMMAND_WINDOWS = "mvn.cmd"
private const val MVN_WRAPPER = "mvnw"
private const val MVN_WRAPPER_WINDOWS = "mvnw.cmd"
fun isAvailable(verbose: Boolean = false): Boolean {
val isWindows = System.getProperty("os.name").lowercase().contains("windows")
val command = if (isWindows) MVN_COMMAND_WINDOWS else MVN_COMMAND
return CommandFinder.isCommandAvailable(command, verbose)
}
fun getVersion(verbose: Boolean = false): String? {
val isWindows = System.getProperty("os.name").lowercase().contains("windows")
val command = if (isWindows) MVN_COMMAND_WINDOWS else MVN_COMMAND
return CommandFinder.getCommandVersion(command, verbose)
}
fun findMavenCommand(projectDir: File, verbose: Boolean = false): String? {
return CommandFinder.findCommand(
projectDir = projectDir,
wrapperName = MVN_WRAPPER,
wrapperNameWindows = MVN_WRAPPER_WINDOWS,
globalCommand = MVN_COMMAND,
globalCommandWindows = MVN_COMMAND_WINDOWS,
verbose = verbose
)
}
}