From e5293711e3b2aab7e1edd5a03f2f884786fcf04c Mon Sep 17 00:00:00 2001 From: liaozan <378024053@qq.com> Date: Sun, 20 Mar 2022 14:38:14 +0800 Subject: [PATCH] chore: fetch git resource --- initializer-backend/pom.xml | 12 ++++-- .../initializer/runner/ArchetypeFetcher.java | 43 +++++++++++++++++++ pom.xml | 2 + 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypeFetcher.java diff --git a/initializer-backend/pom.xml b/initializer-backend/pom.xml index ab8a333..c67e18a 100644 --- a/initializer-backend/pom.xml +++ b/initializer-backend/pom.xml @@ -33,22 +33,26 @@ org.apache.maven maven-embedder - 3.8.5 + ${maven-embedder.version} org.apache.maven maven-compat - 3.8.5 + ${maven-embedder.version} org.eclipse.aether aether-connector-basic - 1.1.0 + ${aether.version} org.eclipse.aether aether-transport-http - 1.1.0 + ${aether.version} + + + org.eclipse.jgit + org.eclipse.jgit diff --git a/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypeFetcher.java b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypeFetcher.java new file mode 100644 index 0000000..e1e3a1d --- /dev/null +++ b/initializer-backend/src/main/java/com/schbrain/archetype/initializer/runner/ArchetypeFetcher.java @@ -0,0 +1,43 @@ +package com.schbrain.archetype.initializer.runner; + +import cn.hutool.system.SystemUtil; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.jgit.api.CheckoutCommand; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.lib.Ref; +import org.eclipse.jgit.transport.TagOpt; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +import java.io.File; + +/** + * @author liaozan + * @since 2022/3/20 + */ +@Slf4j +@Component +public class ArchetypeFetcher implements ApplicationRunner { + + private static final String ARCHETYPE_REPO_URL = "http://gitlab.schbrain.com/gitlab/tools/schbrain-archetype.git"; + + @Override + public void run(ApplicationArguments args) throws GitAPIException { + String tempDir = SystemUtil.getUserInfo().getTempDir(); + File archetypeTemplateDirectory = new File(tempDir, "archetype"); + Git git = Git.cloneRepository() + .setTagOption(TagOpt.FETCH_TAGS) + .setNoCheckout(false) + .setDirectory(archetypeTemplateDirectory) + .setCloneSubmodules(false) + .setURI(ARCHETYPE_REPO_URL) + .setRemote("upstream") + .call(); + CheckoutCommand checkoutCommand = git.checkout().setName("master").setCreateBranch(true); + Ref ref = checkoutCommand.call(); + log.info("Success checkout archetype branch: {} of {}", ref.getName(), ARCHETYPE_REPO_URL); + } + +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index ce14612..6797b53 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,8 @@ 0.0.1-SNAPSHOT 1.12.1 + 3.8.5 + 1.1.0 -- GitLab