@veecode-platform/safira-cli
Version:
Generate a microservice project from your spec.
48 lines (47 loc) • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MavenPackage = void 0;
const file_system_utils_1 = require("../../utils/file-system-utils");
const command_execute_1 = require("../../command/command-execute");
class MavenPackage {
async package(options) {
const mvnw = file_system_utils_1.FileSystemUtils.buildPath(options.projectPath, "mvnw");
const dockerfileType = options.dockerFile ? options.dockerFile.split(".").pop() : "";
const buildType = this._buildType(dockerfileType || "");
console.log(`Executing: ${mvnw} package`);
await this._updateVersion(mvnw, options.version);
const params = ["package"];
if (options.quarkusBuiltinImage)
params.push("-Dquarkus.container-image.build=true");
if (options.quarkusBuiltinImagePublish) {
params.push("-Dquarkus.container-image.push=true", `-Dquarkus.container-image.registry=${options.registry.registry}`, `-Dquarkus.container-image.group=${options.registry.username}`, `-Dquarkus.container-image.username=${options.registry.username}`, `-Dquarkus.container-image.password=${options.registry.password}`);
}
if (options.dockerImageRegistry)
params.push(`-Dquarkus.container-image.registry=${options.dockerImageRegistry}`);
if (options.skipTests === true)
params.push("-DskipTests=true");
if (buildType)
params.push(buildType);
await command_execute_1.CommandExecute.instance.exec(`${mvnw} ${params.join(" ")}`, false);
}
name() {
return "MavenPackage";
}
async _updateVersion(mvnw, version) {
await command_execute_1.CommandExecute.instance.exec(`${mvnw} versions:set -DnewVersion=${version}&&${mvnw} versions:commit`);
}
_buildType(dockerFile) {
console.log(`dockerFile buildType: ${dockerFile}`);
switch (dockerFile) {
case "native-distroless":
case "native":
return "-Pnative";
case "legacy-jar":
return "-Dquarkus.package.type=legacy-jar";
case "jvm":
default:
return "";
}
}
}
exports.MavenPackage = MavenPackage;