This commit is contained in:
kekxv 2025-06-25 07:14:47 +00:00 committed by GitHub
commit 874266efdb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 42 additions and 10 deletions

View File

@ -7,4 +7,6 @@ Add this step into workflow
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.8.2
# download mirror,url or aliyun or empty
maven-mirror: ''
```

View File

@ -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'

View File

@ -53,22 +53,34 @@ if (!tempDirectory) {
}
tempDirectory = path.join(baseLocation, 'actions', 'temp');
}
function getMaven(version) {
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);
toolPath = yield downloadMaven(version, mirror);
}
toolPath = path.join(toolPath, 'bin');
core.addPath(toolPath);
});
}
exports.getMaven = getMaven;
function downloadMaven(version) {
function get_server_url(mirror) {
if (mirror && (mirror.indexOf("http") === 0)) {
return mirror;
}
switch (mirror) {
case "aliyun":
return "https://maven.aliyun.com/repository/public";
default:
break;
}
return "https://repo.maven.apache.org/maven2";
}
function downloadMaven(version, mirror) {
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(mirror)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`;
console.log(`downloading ${downloadUrl}`);
try {
const downloadPath = yield tc.downloadTool(downloadUrl);

View File

@ -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) {

View File

@ -19,21 +19,34 @@ if (!tempDirectory) {
tempDirectory = path.join(baseLocation, 'actions', 'temp');
}
export async function getMaven(version: string) {
export async function getMaven(version: string, mirror: string) {
let toolPath: string;
toolPath = tc.find('maven', version);
if (!toolPath) {
toolPath = await downloadMaven(version);
toolPath = await downloadMaven(version, mirror);
}
toolPath = path.join(toolPath, 'bin');
core.addPath(toolPath);
}
async function downloadMaven(version: string): Promise<string> {
function get_server_url(mirror: string) {
if (mirror && (mirror.indexOf("http") === 0)) {
return mirror;
}
switch (mirror) {
case "aliyun":
return "https://maven.aliyun.com/repository/public";
default:
break;
}
return "https://repo.maven.apache.org/maven2";
}
async function downloadMaven(version: string, mirror: string): Promise<string> {
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(mirror)}/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.tar.gz`;
console.log(`downloading ${downloadUrl}`);
try {

View File

@ -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);