Commit 40385cce authored by liaozan's avatar liaozan 🏀

chore: update maven settings

parent acdc46ce
...@@ -6,8 +6,13 @@ import com.schbrain.archetype.initializer.param.ArchetypeGenerateParam; ...@@ -6,8 +6,13 @@ import com.schbrain.archetype.initializer.param.ArchetypeGenerateParam;
import com.schbrain.common.util.JacksonUtils; import com.schbrain.common.util.JacksonUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.maven.cli.MavenCli; import org.apache.maven.cli.MavenCli;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.io.DefaultSettingsWriter;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.Collections;
import static org.apache.maven.cli.MavenCli.MULTIMODULE_PROJECT_DIRECTORY; import static org.apache.maven.cli.MavenCli.MULTIMODULE_PROJECT_DIRECTORY;
...@@ -18,7 +23,9 @@ import static org.apache.maven.cli.MavenCli.MULTIMODULE_PROJECT_DIRECTORY; ...@@ -18,7 +23,9 @@ import static org.apache.maven.cli.MavenCli.MULTIMODULE_PROJECT_DIRECTORY;
@Slf4j @Slf4j
public class MavenUtils { public class MavenUtils {
public static File generate(ArchetypeGenerateParam param) { private static final File SETTINGS_FILE = new File(MavenCli.USER_MAVEN_CONFIGURATION_HOME, "settings.xml");
public static File generate(ArchetypeGenerateParam param) throws IOException {
log.info("Prepare to generate archetype project: {}", JacksonUtils.toJsonString(param, true)); log.info("Prepare to generate archetype project: {}", JacksonUtils.toJsonString(param, true));
MavenCli mavenCli = new MavenCli(); MavenCli mavenCli = new MavenCli();
...@@ -26,15 +33,33 @@ public class MavenUtils { ...@@ -26,15 +33,33 @@ public class MavenUtils {
File archetype = getArchetypeDirectory(param.getArtifact()); File archetype = getArchetypeDirectory(param.getArtifact());
String outputDirectory = archetype.getAbsolutePath(); String outputDirectory = archetype.getAbsolutePath();
String[] args = getArgs(param, outputDirectory); File settingsFile = getSettingsFile();
String[] args = getArgs(param, settingsFile.getAbsolutePath(), outputDirectory);
System.getProperties().setProperty(MULTIMODULE_PROJECT_DIRECTORY, "$M2_HOME"); System.getProperties().setProperty(MULTIMODULE_PROJECT_DIRECTORY, "$M2_HOME");
mavenCli.doMain(args, null, System.out, System.err); mavenCli.doMain(args, null, System.out, System.err);
log.info("Generate archetype project at {}", outputDirectory); log.info("Generate archetype project at {}", outputDirectory);
return ZipUtil.zip(archetype); return ZipUtil.zip(archetype);
} }
private static File getSettingsFile() throws IOException {
if (SETTINGS_FILE.exists()) {
return SETTINGS_FILE;
}
Settings settings = new Settings();
Mirror mirror = new Mirror();
mirror.setUrl("https://maven.aliyun.com/repository/public");
settings.addMirror(mirror);
DefaultSettingsWriter settingsWriter = new DefaultSettingsWriter();
settingsWriter.write(SETTINGS_FILE, Collections.emptyMap(), settings);
return SETTINGS_FILE;
}
private static File getArchetypeDirectory(String artifactId) { private static File getArchetypeDirectory(String artifactId) {
String tmpDirPath = FileUtil.getTmpDirPath(); String tmpDirPath = FileUtil.getTmpDirPath();
File archetype = new File(tmpDirPath, artifactId); File archetype = new File(tmpDirPath, artifactId);
...@@ -44,13 +69,14 @@ public class MavenUtils { ...@@ -44,13 +69,14 @@ public class MavenUtils {
} }
@SuppressWarnings("SpellCheckingInspection") @SuppressWarnings("SpellCheckingInspection")
private static String[] getArgs(ArchetypeGenerateParam param, String outputDirectory) { private static String[] getArgs(ArchetypeGenerateParam param, String settingsFile, String outputDirectory) {
return new String[]{ return new String[]{
"-B", "-B",
"archetype:generate", "archetype:generate",
"-DarchetypeGroupId=com.schbrain.kp", "-DarchetypeGroupId=com.schbrain.kp",
"-DarchetypeArtifactId=schbrain-archetype", "-DarchetypeArtifactId=schbrain-archetype",
"-DarchetypeVersion=1.0-SNAPSHOT", "-DarchetypeVersion=1.0-SNAPSHOT",
String.format("-gs=%s", settingsFile),
String.format("-DoutputDirectory=%s", outputDirectory), String.format("-DoutputDirectory=%s", outputDirectory),
String.format("-DgroupId=%s", param.getGroup()), String.format("-DgroupId=%s", param.getGroup()),
String.format("-DartifactId=%s", param.getArtifact()), String.format("-DartifactId=%s", param.getArtifact()),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment