From 16b2f428b321a0a7d4ea1ec39ec8db92d6c262dc Mon Sep 17 00:00:00 2001 From: jamen Date: Fri, 29 Dec 2017 18:52:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=A7=84=E5=88=99=E5=BC=95?= =?UTF-8?q?=E6=93=8E=E5=92=8C=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slife-code/pom.xml | 7 +++ .../slife/controller/CodeBaseController.java | 26 +++++++++ .../com/slife/controller/PomController.java | 50 +++++++++++++++++ .../java/com/slife/service/IPomService.java | 26 +++++++++ .../com/slife/service/impl/PomService.java | 54 +++++++++++++++++++ slife-sys/pom.xml | 1 - 6 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 slife-code/src/main/java/com/slife/controller/CodeBaseController.java create mode 100644 slife-code/src/main/java/com/slife/controller/PomController.java create mode 100644 slife-code/src/main/java/com/slife/service/IPomService.java create mode 100644 slife-code/src/main/java/com/slife/service/impl/PomService.java diff --git a/slife-code/pom.xml b/slife-code/pom.xml index ee54f4b..519952a 100644 --- a/slife-code/pom.xml +++ b/slife-code/pom.xml @@ -12,5 +12,12 @@ slife-code + + + commons-io + commons-io + 2.5 + + \ No newline at end of file diff --git a/slife-code/src/main/java/com/slife/controller/CodeBaseController.java b/slife-code/src/main/java/com/slife/controller/CodeBaseController.java new file mode 100644 index 0000000..ad81a4d --- /dev/null +++ b/slife-code/src/main/java/com/slife/controller/CodeBaseController.java @@ -0,0 +1,26 @@ +package com.slife.controller; + +import javax.servlet.http.HttpServletResponse; + +/** + * Created by chen on 2017/12/28. + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +public class CodeBaseController { + + /** + * 设置response 头部信息 + * @param response + * @param data + * @param zipName + */ + public void setResponseHead(HttpServletResponse response, byte[] data ,String zipName){ + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename="+zipName); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("application/octet-stream; charset=UTF-8"); + } +} diff --git a/slife-code/src/main/java/com/slife/controller/PomController.java b/slife-code/src/main/java/com/slife/controller/PomController.java new file mode 100644 index 0000000..7db92ae --- /dev/null +++ b/slife-code/src/main/java/com/slife/controller/PomController.java @@ -0,0 +1,50 @@ +package com.slife.controller; + +import com.slife.service.IPomService; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +/** + * Created by chen on 2017/12/28. + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Controller +@RequestMapping("/code/pom") +public class PomController extends CodeBaseController{ + + @Autowired + private IPomService pomService; + + /** + * 创建一个 pom项目 + * @param response + * @param parentVersion + * @param artifactId + * @param pomName + * @param packageName + * @param description + * @throws IOException + */ + @GetMapping("/create") + public void create( HttpServletResponse response, + @RequestParam("parentVersion") String parentVersion, + @RequestParam("artifactId") String artifactId, + @RequestParam("pomName") String pomName, + @RequestParam("packageName") String packageName, + @RequestParam(value = "description",required = false) String description) throws IOException { + + byte[] data = pomService.createMavenCode(parentVersion,artifactId,pomName,packageName,description); + setResponseHead(response,data,artifactId); + IOUtils.write(data, response.getOutputStream()); + } + +} diff --git a/slife-code/src/main/java/com/slife/service/IPomService.java b/slife-code/src/main/java/com/slife/service/IPomService.java new file mode 100644 index 0000000..1d50cff --- /dev/null +++ b/slife-code/src/main/java/com/slife/service/IPomService.java @@ -0,0 +1,26 @@ +package com.slife.service; + +import org.springframework.stereotype.Service; + +/** + * Created by chen on 2017/12/28. + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Service +public interface IPomService { + + + /** + * 生成 maven 项目 + * @param parentVersion + * @param artifactId + * @param pomName + * @param packageName + * @param description + * @return + */ + byte[] createMavenCode(String parentVersion, String artifactId, String pomName,String packageName, String description) ; +} diff --git a/slife-code/src/main/java/com/slife/service/impl/PomService.java b/slife-code/src/main/java/com/slife/service/impl/PomService.java new file mode 100644 index 0000000..26e8ce6 --- /dev/null +++ b/slife-code/src/main/java/com/slife/service/impl/PomService.java @@ -0,0 +1,54 @@ +package com.slife.service.impl; + +import com.slife.service.IPomService; +import org.apache.commons.io.IOUtils; +import org.springframework.stereotype.Service; + +import java.io.ByteArrayOutputStream; +import java.util.zip.ZipOutputStream; + +/** + * Created by chen on 2017/12/28. + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Service +public class PomService implements IPomService { + + /** + * 生成 maven 项目 + * @param parentVersion + * @param artifactId + * @param pomName + * @param packageName + * @param description + * @return + */ + @Override + public byte[] createMavenCode(String parentVersion, String artifactId, String pomName,String packageName, String + description) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + createPomFile(parentVersion,artifactId,pomName,description); + createSrcFile(packageName); + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + + private void createPomFile(String parentVersion, String artifactId, + String pomName, String description) { + } + + + + private void createSrcFile(String packageName) { + + } + + + + +} diff --git a/slife-sys/pom.xml b/slife-sys/pom.xml index e373883..a759aec 100644 --- a/slife-sys/pom.xml +++ b/slife-sys/pom.xml @@ -12,7 +12,6 @@ slife-sys slife-sys - com.slife