From 83ff8b1c4b54c9ea7f484253a2eb43c7fb684b32 Mon Sep 17 00:00:00 2001 From: kekxv Date: Fri, 20 Jun 2025 07:37:07 +0000 Subject: [PATCH 1/4] add mirror --- action.yml | 3 +++ lib/installer.js | 20 ++++++++++++++++---- lib/setup-maven.js | 3 ++- src/installer.ts | 21 +++++++++++++++++---- src/setup-maven.ts | 3 ++- 5 files changed, 40 insertions(+), 10 deletions(-) diff --git a/action.yml b/action.yml index eaed535..8a4f787 100644 --- a/action.yml +++ b/action.yml @@ -5,6 +5,9 @@ inputs: maven-version: description: 'Version Spec of the version to use. Examples: 10.x, 10.15.1, >=10.15.0' default: '3.8.2' + maven-mirror: + description: 'download mirror,url or aliyun or empty' + default: '' runs: using: 'node20' main: 'lib/setup-maven.js' diff --git a/lib/installer.js b/lib/installer.js index 74aa9ce..1b4c1a5 100644 --- a/lib/installer.js +++ b/lib/installer.js @@ -53,22 +53,34 @@ if (!tempDirectory) { } tempDirectory = path.join(baseLocation, 'actions', 'temp'); } -function getMaven(version) { +function getMaven(version, url) { return __awaiter(this, void 0, void 0, function* () { let toolPath; toolPath = tc.find('maven', version); if (!toolPath) { - toolPath = yield downloadMaven(version); + toolPath = yield downloadMaven(version, url); } toolPath = path.join(toolPath, 'bin'); core.addPath(toolPath); }); } exports.getMaven = getMaven; -function downloadMaven(version) { +function get_server_url(url) { + if (url && url.indexOf("http") == 0) { + return url; + } + switch (url) { + case "aliyun": + return "https://maven.aliyun.com/repository/public"; + default: + break; + } + return "https://repo.maven.apache.org/maven2"; +} +function downloadMaven(version, url) { return __awaiter(this, void 0, void 0, function* () { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(url)}/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { const downloadPath = yield tc.downloadTool(downloadUrl); diff --git a/lib/setup-maven.js b/lib/setup-maven.js index 4ef56e4..0a07d1e 100644 --- a/lib/setup-maven.js +++ b/lib/setup-maven.js @@ -38,8 +38,9 @@ function run() { return __awaiter(this, void 0, void 0, function* () { try { let version = core.getInput('maven-version'); + let mirror = core.getInput('maven-mirror'); if (version) { - yield installer.getMaven(version); + yield installer.getMaven(version, mirror || ""); } } catch (error) { diff --git a/src/installer.ts b/src/installer.ts index 5eabd27..9370a2f 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -19,21 +19,34 @@ if (!tempDirectory) { tempDirectory = path.join(baseLocation, 'actions', 'temp'); } -export async function getMaven(version: string) { +export async function getMaven(version: string, url: string) { let toolPath: string; toolPath = tc.find('maven', version); if (!toolPath) { - toolPath = await downloadMaven(version); + toolPath = await downloadMaven(version, url); } toolPath = path.join(toolPath, 'bin'); core.addPath(toolPath); } -async function downloadMaven(version: string): Promise { +function get_server_url(url: string) { + if (url && url.indexOf("http") == 0) { + return url; + } + switch (url) { + case "aliyun": + return "https://maven.aliyun.com/repository/public"; + default: + break; + } + return "https://repo.maven.apache.org/maven2"; +} + +async function downloadMaven(version: string, url: string): Promise { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(url)}/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { diff --git a/src/setup-maven.ts b/src/setup-maven.ts index f25f53d..6dc0035 100644 --- a/src/setup-maven.ts +++ b/src/setup-maven.ts @@ -4,8 +4,9 @@ import * as installer from './installer'; async function run() { try { let version = core.getInput('maven-version'); + let mirror = core.getInput('maven-mirror'); if (version) { - await installer.getMaven(version); + await installer.getMaven(version, mirror || ""); } } catch (error) { core.setFailed((error as Error).message); From 95dcbce82231268ca3c79a172febe20148bd4e35 Mon Sep 17 00:00:00 2001 From: kekxv Date: Fri, 20 Jun 2025 07:53:20 +0000 Subject: [PATCH 2/4] fix --- lib/installer.js | 2 +- src/installer.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/installer.js b/lib/installer.js index 1b4c1a5..6c49eda 100644 --- a/lib/installer.js +++ b/lib/installer.js @@ -80,7 +80,7 @@ function get_server_url(url) { function downloadMaven(version, url) { return __awaiter(this, void 0, void 0, function* () { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `${get_server_url(url)}/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(url)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { const downloadPath = yield tc.downloadTool(downloadUrl); diff --git a/src/installer.ts b/src/installer.ts index 9370a2f..e4a6a06 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -46,7 +46,7 @@ function get_server_url(url: string) { async function downloadMaven(version: string, url: string): Promise { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `${get_server_url(url)}/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(url)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { From 0f834fcbd368c69955852e57a8441eef25f064c5 Mon Sep 17 00:00:00 2001 From: kekxv Date: Fri, 20 Jun 2025 08:09:44 +0000 Subject: [PATCH 3/4] change url to mirror --- lib/installer.js | 16 ++++++++-------- src/installer.ts | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/installer.js b/lib/installer.js index 6c49eda..928e6b2 100644 --- a/lib/installer.js +++ b/lib/installer.js @@ -53,23 +53,23 @@ if (!tempDirectory) { } tempDirectory = path.join(baseLocation, 'actions', 'temp'); } -function getMaven(version, url) { +function getMaven(version, mirror) { return __awaiter(this, void 0, void 0, function* () { let toolPath; toolPath = tc.find('maven', version); if (!toolPath) { - toolPath = yield downloadMaven(version, url); + toolPath = yield downloadMaven(version, mirror); } toolPath = path.join(toolPath, 'bin'); core.addPath(toolPath); }); } exports.getMaven = getMaven; -function get_server_url(url) { - if (url && url.indexOf("http") == 0) { - return url; +function get_server_url(mirror) { + if (mirror && mirror.indexOf("http") == 0) { + return mirror; } - switch (url) { + switch (mirror) { case "aliyun": return "https://maven.aliyun.com/repository/public"; default: @@ -77,10 +77,10 @@ function get_server_url(url) { } return "https://repo.maven.apache.org/maven2"; } -function downloadMaven(version, url) { +function downloadMaven(version, mirror) { return __awaiter(this, void 0, void 0, function* () { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `${get_server_url(url)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(mirror)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { const downloadPath = yield tc.downloadTool(downloadUrl); diff --git a/src/installer.ts b/src/installer.ts index e4a6a06..955c444 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -19,23 +19,23 @@ if (!tempDirectory) { tempDirectory = path.join(baseLocation, 'actions', 'temp'); } -export async function getMaven(version: string, url: string) { +export async function getMaven(version: string, mirror: string) { let toolPath: string; toolPath = tc.find('maven', version); if (!toolPath) { - toolPath = await downloadMaven(version, url); + toolPath = await downloadMaven(version, mirror); } toolPath = path.join(toolPath, 'bin'); core.addPath(toolPath); } -function get_server_url(url: string) { - if (url && url.indexOf("http") == 0) { - return url; +function get_server_url(mirror: string) { + if (mirror && mirror.indexOf("http") == 0) { + return mirror; } - switch (url) { + switch (mirror) { case "aliyun": return "https://maven.aliyun.com/repository/public"; default: @@ -44,9 +44,9 @@ function get_server_url(url: string) { return "https://repo.maven.apache.org/maven2"; } -async function downloadMaven(version: string, url: string): Promise { +async function downloadMaven(version: string, mirror: string): Promise { const toolDirectoryName = `apache-maven-${version}`; - const downloadUrl = `${get_server_url(url)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; + const downloadUrl = `${get_server_url(mirror)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`; console.log(`downloading ${downloadUrl}`); try { From c8a3e928ae7826f3f11641042e31ce96a19f76a6 Mon Sep 17 00:00:00 2001 From: kekxv Date: Fri, 20 Jun 2025 13:49:37 +0000 Subject: [PATCH 4/4] update --- lib/installer.js | 2 +- src/installer.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/installer.js b/lib/installer.js index 928e6b2..3948bea 100644 --- a/lib/installer.js +++ b/lib/installer.js @@ -66,7 +66,7 @@ function getMaven(version, mirror) { } exports.getMaven = getMaven; function get_server_url(mirror) { - if (mirror && mirror.indexOf("http") == 0) { + if (mirror && (mirror.indexOf("http") === 0)) { return mirror; } switch (mirror) { diff --git a/src/installer.ts b/src/installer.ts index 955c444..e7a836e 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -32,7 +32,7 @@ export async function getMaven(version: string, mirror: string) { } function get_server_url(mirror: string) { - if (mirror && mirror.indexOf("http") == 0) { + if (mirror && (mirror.indexOf("http") === 0)) { return mirror; } switch (mirror) {