Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: ''
```
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
20 changes: 16 additions & 4 deletions lib/installer.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion lib/setup-maven.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
21 changes: 17 additions & 4 deletions src/installer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
3 changes: 2 additions & 1 deletion src/setup-maven.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down