-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maven local 2 #130
Maven local 2 #130
Conversation
apache#1335) * [KOGITO-7697] - Group all Jobs service jdbc flavors on one container image Signed-off-by: spolti <[email protected]> * review and improvements Signed-off-by: spolti <[email protected]> review changes and remove leftovers Signed-off-by: spolti <[email protected]> Update build-kogito-apps-components.sh Update build-kogito-apps-components.sh update script * make the all in one module independent Signed-off-by: spolti <[email protected]> * Apply suggestions from code review Signed-off-by: spolti <[email protected]> Co-authored-by: Tristan Radisson <[email protected]>
Co-authored-by: Jenkins CI <[email protected]>
* [main] Bump Quarkus version to 2.14.0.Final * Update GraalVM module to 22.2.0 Co-authored-by: Jenkins CI <[email protected]> Co-authored-by: radtriste <[email protected]>
Co-authored-by: Jenkins CI <[email protected]>
…configuration container field (apache#1374) Signed-off-by: spolti <[email protected]>
* Build `kogito-swf-builder` quarkus app locally * review comments
* update * correction
…pache#1381) * [KOGITO-8304] - Document the usage of all-in-one jobs-service image Signed-off-by: spolti <[email protected]> * Update README.md * Update README.md Co-authored-by: Tristan Radisson <[email protected]> * Update README.md Co-authored-by: Tristan Radisson <[email protected]> * Update README.md Signed-off-by: spolti <[email protected]> Co-authored-by: Tristan Radisson <[email protected]>
* [main] Bump Quarkus version to 2.15.0.CR1 * [main] Bump Quarkus version to 2.15.0.Final * Update tests/features/kogito-swf-builder.feature * update * added backporting * Revert "added backporting" This reverts commit 7d28f58bf908136f0c33b4e4716284bdc9a09c49. Co-authored-by: Jenkins CI <[email protected]> Co-authored-by: radtriste <[email protected]>
- fixes KOGITO-8420 - fixes KOGITO-8421 - remove unnecessary files from builder image Signed-off-by: Your Name <[email protected]>
…builder context (apache#1401) Signed-off-by: Spolti <[email protected]>
apache#1402) * [KOGITO-8421] - [SW] Ensure that the Kogito SW builder image has the correct Quarkus version - Apply review suggestions Signed-off-by: Spolti <[email protected]> * Update scripts/build-quarkus-app.sh * Update modules/kogito-swf-builder/added/create-app.sh Signed-off-by: Spolti <[email protected]>
…#1405) Signed-off-by: Spolti <[email protected]>
Signed-off-by: Spolti <[email protected]>
* KOGITO-8510 Solve kogito-swf-builder long builds
* KOGITO-8393 Clean release notes on branching * Update .ci/jenkins/Jenkinsfile.setup-branch
…y default (apache#1404) * [KOGITO-8469] Adapt Kogito SWF Builder image to run quarkus devmode by default Signed-off-by: Ricardo Zanini <[email protected]> * Add RELEASE NOTES Signed-off-by: Ricardo Zanini <[email protected]> * Add behave tests for running the app in devmode Signed-off-by: Ricardo Zanini <[email protected]> * Remove service description from ports Signed-off-by: Ricardo Zanini <[email protected]> * Forcing quarkus version to the runner Signed-off-by: Ricardo Zanini <[email protected]> * Formatting runner command Co-authored-by: Tristan Radisson <[email protected]> * Updating docs Signed-off-by: Ricardo Zanini <[email protected]> * Apply suggestions from code review Co-authored-by: Tristan Radisson <[email protected]> Signed-off-by: Ricardo Zanini <[email protected]> Co-authored-by: Tristan Radisson <[email protected]>
…ory in packages format (apache#2612)
…ache#2629) Signed-off-by: Ricardo Zanini <[email protected]> Co-authored-by: Ricardo Zanini <[email protected]>
1d0dd07
to
840e606
Compare
840e606
to
3545c64
Compare
Rename Fix build reproducibility v2 Oops Fix DashBuilder configuration of maven-deploy-plugin Oops Fix maven-m2-repo-via-http-image configuration . Fix config
3545c64
to
076fb41
Compare
`.trim(); | ||
|
||
const DEFAULT_LOCAL_REPO = String( | ||
cp.execSync(`mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout -f ${EMPTY_POM_XML_PATH}`, { |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command dynamically and instead use cp.execFileSync
to pass the command and its arguments separately. This approach ensures that the shell does not misinterpret any special characters in the file paths.
- Replace the dynamic command string with a static command and an array of arguments.
- Use
cp.execFileSync
instead ofcp.execSync
to execute the command with the arguments.
-
Copy modified line R40
@@ -39,3 +39,3 @@ | ||
const DEFAULT_LOCAL_REPO = String( | ||
cp.execSync(`mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout -f ${EMPTY_POM_XML_PATH}`, { | ||
cp.execFileSync("mvn", ["help:evaluate", "-Dexpression=settings.localRepository", "-q", "-DforceStdout", "-f", EMPTY_POM_XML_PATH], { | ||
stdio: "pipe", |
* @param dirname A list of paths representing additional Maven repository directories, to be concatenated the default one (I.e, `maven.repo.local`) | ||
* */ | ||
prepareHardLinkedM2ForPackage: (tmpM2Dir, relativePackagePath) => { | ||
const resolvedTmpM2Dir = path.resolve(tmpM2Dir); |
Check warning
Code scanning / CodeQL
Unsafe shell command constructed from library input Medium
library input
shell command
This path concatenation which depends on
library input
shell command
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid directly embedding the tmpM2Dir
parameter in the shell command. Instead, we can use the child_process.execFile
method, which allows us to pass arguments as an array, thus avoiding shell interpretation of the input. This method is safer and prevents command injection vulnerabilities.
- Replace the
cp.execSync
calls withcp.execFileSync
and pass the command and arguments separately. - Ensure that all paths and arguments are passed as separate elements in the array to
execFileSync
.
-
Copy modified line R107 -
Copy modified line R116
@@ -106,3 +106,3 @@ | ||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-nal", `${DEFAULT_LOCAL_REPO}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
|
||
@@ -115,3 +115,3 @@ | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-al", `${path.resolve(t)}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
} |
fs.mkdirSync(resolvedTmpM2Dir, { recursive: true }); | ||
|
||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Unsafe shell command constructed from library input Medium
library input
shell command
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid directly concatenating user input into shell commands. Instead, we can use the child_process.execFile
method, which allows us to pass arguments as an array, thus avoiding shell interpretation of special characters. This method is safer and prevents command injection vulnerabilities.
- Replace the
cp.execSync
call withcp.execFileSync
to safely pass the command and its arguments. - Ensure that all paths and arguments are passed as separate elements in the array to
execFileSync
.
-
Copy modified line R107 -
Copy modified line R116
@@ -106,3 +106,3 @@ | ||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-nal", `${DEFAULT_LOCAL_REPO}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
|
||
@@ -115,3 +115,3 @@ | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-al", `${path.resolve(t)}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
} |
fs.mkdirSync(resolvedTmpM2Dir, { recursive: true }); | ||
|
||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string and instead use cp.execFileSync
or cp.spawnSync
to pass the command and its arguments separately. This approach prevents the shell from interpreting special characters in the arguments.
- Replace the
cp.execSync
call on line 107 withcp.execFileSync
to pass the command and arguments separately. - Ensure that the
DEFAULT_LOCAL_REPO
andresolvedTmpM2Dir
paths are passed as arguments to avoid shell interpretation.
-
Copy modified line R107 -
Copy modified line R116
@@ -106,3 +106,3 @@ | ||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-nal", `${DEFAULT_LOCAL_REPO}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
|
||
@@ -115,3 +115,3 @@ | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-al", `${path.resolve(t)}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
} |
// tail | ||
for (const t of tail) { | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Unsafe shell command constructed from library input Medium
library input
shell command
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing shell commands using string concatenation with untrusted input. Instead, we can use the child_process.execFile
method, which allows us to pass arguments as an array, thereby avoiding shell interpretation of special characters.
- Replace the
cp.execSync
calls withcp.execFileSync
to safely pass arguments. - Ensure that all dynamic parts of the command are passed as separate arguments in the array.
-
Copy modified line R40 -
Copy modified line R74 -
Copy modified line R76 -
Copy modified line R107 -
Copy modified line R116
@@ -39,3 +39,3 @@ | ||
const DEFAULT_LOCAL_REPO = String( | ||
cp.execSync(`mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout -f ${EMPTY_POM_XML_PATH}`, { | ||
cp.execFileSync("mvn", ["help:evaluate", "-Dexpression=settings.localRepository", "-q", "-DforceStdout", "-f", EMPTY_POM_XML_PATH], { | ||
stdio: "pipe", | ||
@@ -73,5 +73,5 @@ | ||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync("powershell.exe", ["-Command", cmd.replaceAll(" -", " `-")], { stdio: "inherit" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync("sh", ["-c", cmd], { stdio: "inherit" }); | ||
} | ||
@@ -106,3 +106,3 @@ | ||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-nal", `${DEFAULT_LOCAL_REPO}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
|
||
@@ -115,3 +115,3 @@ | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-al", `${path.resolve(t)}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
} |
// tail | ||
for (const t of tail) { | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
This shell command depends on an uncontrolled
absolute path
This shell command depends on an uncontrolled
absolute path
This shell command depends on an uncontrolled
file name
This shell command depends on an uncontrolled
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string and instead use cp.execFileSync
or cp.spawnSync
to pass the command and its arguments separately. This approach ensures that the shell does not interpret any special characters in the arguments.
- Replace the
cp.execSync
call on line 116 withcp.execFileSync
to pass the command and arguments separately. - Ensure that the paths are passed as separate arguments to avoid shell interpretation issues.
-
Copy modified line R107 -
Copy modified line R116
@@ -106,3 +106,3 @@ | ||
// head | ||
cp.execSync(`cp -nal ${DEFAULT_LOCAL_REPO}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-nal", `${DEFAULT_LOCAL_REPO}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
|
||
@@ -115,3 +115,3 @@ | ||
if (fs.existsSync(path.resolve(t))) { | ||
cp.execSync(`cp -al ${path.resolve(t)}/* ${resolvedTmpM2Dir}`, { stdio: "inherit" }); | ||
cp.execFileSync("cp", ["-al", `${path.resolve(t)}/*`, resolvedTmpM2Dir], { stdio: "inherit" }); | ||
} |
console.info(`[maven-base] Setting property '${key}' with value '${value}'...`); | ||
console.time(`[maven-base] Setting property '${key}' with value '${value}'...`); | ||
|
||
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; |
Check warning
Code scanning / CodeQL
Unsafe shell command constructed from library input Medium
library input
shell command
This string concatenation which depends on
library input
shell command
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid using string concatenation to construct the shell command. Instead, we can use child_process.execFile
to safely pass the arguments to the mvn
command. This approach ensures that the inputs are not interpreted by the shell, preventing command injection.
- Replace the string concatenation with an array of arguments.
- Use
cp.execFile
instead ofcp.execSync
to execute the command with the arguments array.
-
Copy modified lines R135-R141 -
Copy modified line R144 -
Copy modified line R146
@@ -134,8 +134,14 @@ | ||
|
||
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; | ||
const args = [ | ||
"versions:set-property", | ||
`-Dproperty=${key}`, | ||
`-DnewVersion=${value}`, | ||
"-DgenerateBackupPoms=false", | ||
...BOOTSTRAP_CLI_ARGS.split(" ") | ||
]; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit" }); | ||
} |
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string and instead use cp.execFileSync
to separate the command and its arguments. This approach prevents the shell from interpreting special characters in the arguments, thus mitigating the risk of command injection.
- Replace the dynamic command construction with a command and arguments array.
- Use
cp.execFileSync
to execute the command with the arguments array.
-
Copy modified lines R71-R76 -
Copy modified line R79 -
Copy modified line R81
@@ -70,8 +70,13 @@ | ||
|
||
const cmd = `mvn -e org.apache.maven.plugins:maven-wrapper-plugin:${env.mvnw.version}:wrapper ${BOOTSTRAP_CLI_ARGS}`; | ||
const cmd = "mvn"; | ||
const args = [ | ||
"-e", | ||
`org.apache.maven.plugins:maven-wrapper-plugin:${env.mvnw.version}:wrapper`, | ||
...BOOTSTRAP_CLI_ARGS.split(" ") | ||
]; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync(cmd, args, { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync(cmd, args, { stdio: "inherit" }); | ||
} |
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string that includes potentially unsafe environment values. Instead, we should use cp.execFileSync
to pass the command and its arguments separately. This approach ensures that the shell does not misinterpret any special characters or spaces in the paths.
- Replace the construction of the
cmd
variable with an array of arguments. - Use
cp.execFileSync
instead ofcp.execSync
to execute the command with the arguments array.
-
Copy modified lines R135-R141 -
Copy modified line R144 -
Copy modified line R146
@@ -134,8 +134,14 @@ | ||
|
||
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; | ||
const args = [ | ||
"versions:set-property", | ||
`-Dproperty=${key}`, | ||
`-DnewVersion=${value}`, | ||
"-DgenerateBackupPoms=false", | ||
...BOOTSTRAP_CLI_ARGS.split(" ") | ||
]; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit" }); | ||
} |
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string that includes potentially unsafe environment values. Instead, we should use cp.execFileSync
to pass the command and its arguments separately. This approach ensures that the shell does not misinterpret any special characters in the paths.
- Replace the construction of the
cmd
variable with separate command and arguments. - Use
cp.execFileSync
instead ofcp.execSync
to execute the command with the arguments passed as an array.
-
Copy modified lines R71-R76 -
Copy modified line R79 -
Copy modified line R81
@@ -70,8 +70,13 @@ | ||
|
||
const cmd = `mvn -e org.apache.maven.plugins:maven-wrapper-plugin:${env.mvnw.version}:wrapper ${BOOTSTRAP_CLI_ARGS}`; | ||
const cmd = "mvn"; | ||
const args = [ | ||
"-e", | ||
`org.apache.maven.plugins:maven-wrapper-plugin:${env.mvnw.version}:wrapper`, | ||
...BOOTSTRAP_CLI_ARGS.split(" ") | ||
]; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync(cmd, args, { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync(cmd, args, { stdio: "inherit" }); | ||
} |
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); |
Check warning
Code scanning / CodeQL
Shell command built from environment values Medium
absolute path
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 3 months ago
To fix the problem, we should avoid constructing the shell command as a single string that includes environment-derived paths. Instead, we should use cp.execFileSync
to pass the command and its arguments separately. This approach ensures that the shell does not misinterpret special characters in the paths.
- Replace the construction of the
cmd
variable with an array of arguments. - Use
cp.execFileSync
to execute the command with the arguments array. - Ensure the fix is applied consistently across different platforms (Windows and non-Windows).
-
Copy modified lines R135-R141 -
Copy modified line R144 -
Copy modified line R146
@@ -134,8 +134,14 @@ | ||
|
||
const cmd = `mvn versions:set-property -Dproperty=${key} -DnewVersion=${value} -DgenerateBackupPoms=false ${BOOTSTRAP_CLI_ARGS}`; | ||
const args = [ | ||
"versions:set-property", | ||
`-Dproperty=${key}`, | ||
`-DnewVersion=${value}`, | ||
"-DgenerateBackupPoms=false", | ||
...BOOTSTRAP_CLI_ARGS.split(" ") | ||
]; | ||
|
||
if (process.platform === "win32") { | ||
cp.execSync(cmd.replaceAll(" -", " `-"), { stdio: "inherit", shell: "powershell.exe" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit", shell: "powershell.exe" }); | ||
} else { | ||
cp.execSync(cmd, { stdio: "inherit" }); | ||
cp.execFileSync("mvn", args, { stdio: "inherit" }); | ||
} |
Maven local 2