Bläddra i källkod

feat: 新增角色类型&删除测试

weijin 4 år sedan
förälder
incheckning
6310903e41

+ 17 - 14
seecoder-bok-common/src/main/java/cn/seecoder/bok/common/UserRole.java

@@ -1,14 +1,17 @@
-package cn.seecoder.bok.common;
-
-/**
- * @author: Leonezhurui
- * @Date: 2021/9/16 - 10:24 下午
- * @Package: SEEC-BOK
- */
-
-public enum UserRole {
-    TEACHER,
-    STUDENT,
-    HR,
-    ADMIN
-}
+package cn.seecoder.bok.common;
+
+/**
+ * @author: Leonezhurui
+ * @Date: 2021/9/16 - 10:24 下午
+ * @Package: SEEC-BOK
+ */
+
+public enum UserRole {
+    TEACHER,
+    STUDENT,
+    HR,
+    ADMIN,
+    STAFF,
+    SEEC,
+    SEECX
+}

+ 18 - 18
seecoder-bok-server/src/main/java/cn/seecoder/seecoderbokserver/aspect/auth/Authorized.java

@@ -1,18 +1,18 @@
-package cn.seecoder.seecoderbokserver.aspect.auth;
-
-import cn.seecoder.bok.common.UserRole;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @author mars
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-public @interface Authorized {
-    UserRole[]  roles() default {UserRole.ADMIN, UserRole.STUDENT, UserRole.HR, UserRole.TEACHER};
-    String message() default "";
-}
+package cn.seecoder.seecoderbokserver.aspect.auth;
+
+import cn.seecoder.bok.common.UserRole;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author mars
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface Authorized {
+    UserRole[]  roles() default {UserRole.ADMIN, UserRole.STUDENT, UserRole.HR, UserRole.TEACHER, UserRole.STAFF, UserRole.SEEC, UserRole.SEECX};
+    String message() default "";
+}

+ 135 - 135
seecoder-bok-server/src/main/java/cn/seecoder/seecoderbokserver/web/rest/QuestionController.java

@@ -1,135 +1,135 @@
-package cn.seecoder.seecoderbokserver.web.rest;
-
-import cn.seecoder.bok.common.QuestionState;
-import cn.seecoder.bok.common.QuestionType;
-import cn.seecoder.bok.common.UserRole;
-import cn.seecoder.bok.common.api.SeecoderBokQuestionApi;
-import cn.seecoder.bok.common.api.SeecoderBokQuestionQueryApi;
-import cn.seecoder.bok.common.vo.QuestionVO;
-import cn.seecoder.seecoderbokserver.aspect.auth.Authorized;
-import cn.seecoder.seecoderbokserver.domain.Question;
-import cn.seecoder.seecoderbokserver.mapper.QuestionConvertor;
-import cn.seecoder.seecoderbokserver.mapper.QuestionMapper;
-import cn.seecoder.seecoderbokserver.service.QuestionService;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
-
-/**
- * @author Kunduin
- */
-@RestController
-@RequestMapping("/api")
-public class QuestionController implements SeecoderBokQuestionApi, SeecoderBokQuestionQueryApi {
-
-    private final QuestionService questionService;
-    private final QuestionMapper questionMapper;
-
-    public QuestionController(QuestionService questionService, QuestionMapper questionMapper) {
-        this.questionService = questionService;
-        this.questionMapper = questionMapper;
-    }
-
-    @Override
-    @GetMapping("/question")
-    public Page<QuestionVO> getQuestionList(
-            @RequestParam(name = "stem", required = false) String stem,
-            @RequestParam(name = "tag", required = false) List<String> tags,
-            @RequestParam(name = "type", required = false) List<QuestionType> questionTypes,
-            @RequestParam(name = "weight", required = false) List<Integer> weights,
-            @RequestParam(name = "knowledgeId", required = false) List<String> knowledgeIds,
-            Pageable pageable) {
-        return questionService.find(stem, tags, questionTypes, weights, knowledgeIds, pageable)
-                .map(questionMapper::questionToQuestionVO);
-    }
-
-    @GetMapping("/searchQuestion")
-    public Response getSearchQuestionList(
-            @RequestParam(name = "stem", required = false) String stem,
-            @RequestParam(name = "tag", required = false) List<String> tags,
-            @RequestParam(name = "type", required = false) List<QuestionType> questionTypes,
-            @RequestParam(name = "weight", required = false) List<Integer> weights,
-            @RequestParam(name = "knowledgeId", required = false) List<String> knowledgeIds,
-            @RequestParam(name = "offset", required = false) int offset,
-            @RequestParam(name = "pageSize", required = false) int pageSize) {
-        Pageable pageable = PageRequest.of(offset, pageSize);
-        return Response.buildSuccess(questionService.find(stem, tags, questionTypes, weights, knowledgeIds, pageable)
-                .map(questionMapper::questionToQuestionVO));
-    }
-
-    @GetMapping("/pageQuestion")
-    public Response getTargetQuestionList(
-            @RequestParam(name = "offset", required = false) int offset,
-            @RequestParam(name = "pageSize", required = false) int pageSize) {
-        Pageable pageable = PageRequest.of(offset, pageSize);
-        return Response.buildSuccess(questionService.find(null, null, null, null, null, pageable)
-                .map(questionMapper::questionToQuestionVO));
-    }
-
-    @PostMapping("/question")
-    public Response createQuestion(@NotNull @RequestBody QuestionVO question) {
-        Question rawQuestion = QuestionConvertor.convertToEntity(question);
-        return Response.buildSuccess(QuestionConvertor.convertToVO(
-                questionService.save(rawQuestion)));
-    }
-
-    @Override
-    @PostMapping("/questions")
-    public List<QuestionVO> createQuestions(@NotNull @RequestBody List<QuestionVO> questionVOS) {
-        List<Question> questions = questionVOS.stream().map(questionMapper::questionVOTOQuestion)
-                .collect(Collectors.toList());
-        return StreamSupport.stream(questionService.saveAll(questions).spliterator(), false)
-                .map(questionMapper::questionToQuestionVO).collect(Collectors.toList());
-    }
-
-    @Override
-    @GetMapping("/question/{id}")
-    public Optional<QuestionVO> getQuestionById(
-            @NotBlank @PathVariable(name = "id") String questionId) {
-        return questionService.findById(questionId)
-                .map(questionMapper::questionToQuestionVO);
-    }
-
-    @PutMapping("/question/{id}")
-    public Response updateQuestion(
-            @NotNull @RequestBody QuestionVO question) {
-        Question rawQuestion = QuestionConvertor.convertToEntity(question);
-        return Response.buildSuccess(
-                QuestionConvertor.convertToVO(questionService.save(rawQuestion)));
-    }
-
-    @DeleteMapping("/question/{id}")
-    public Response deleteQuestionById(
-            @NotBlank @PathVariable(name = "id") String questionId) {
-        questionService.delete(questionId);
-        return Response.buildSuccess("Delete Successfully");
-    }
-
-    @Override
-    @GetMapping("/question-query/id")
-    public List<QuestionVO> getQuestionListByIds(@NotNull @RequestParam("id") List<String> ids) {
-        return StreamSupport.stream(questionService.findAllById(ids).spliterator(), false)
-                .map(questionMapper::questionToQuestionVO).collect(Collectors.toList());
-    }
-
-
-    @GetMapping("/state")
-    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER})
-    public Response findUncheckedQuestion(
-            @RequestParam(name = "state") QuestionState questionState,
-            @RequestParam(name = "offset", required = false) int offset,
-            @RequestParam(name = "pageSize", required = false) int pageSize
-            ){
-        Pageable pageable = PageRequest.of(offset, pageSize);
-        return Response.buildSuccess(questionService.findUncheckedQuestion(questionState, pageable));
-    }
-
-}
+package cn.seecoder.seecoderbokserver.web.rest;
+
+import cn.seecoder.bok.common.QuestionState;
+import cn.seecoder.bok.common.QuestionType;
+import cn.seecoder.bok.common.UserRole;
+import cn.seecoder.bok.common.api.SeecoderBokQuestionApi;
+import cn.seecoder.bok.common.api.SeecoderBokQuestionQueryApi;
+import cn.seecoder.bok.common.vo.QuestionVO;
+import cn.seecoder.seecoderbokserver.aspect.auth.Authorized;
+import cn.seecoder.seecoderbokserver.domain.Question;
+import cn.seecoder.seecoderbokserver.mapper.QuestionConvertor;
+import cn.seecoder.seecoderbokserver.mapper.QuestionMapper;
+import cn.seecoder.seecoderbokserver.service.QuestionService;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
+
+/**
+ * @author Kunduin
+ */
+@RestController
+@RequestMapping("/api")
+public class QuestionController implements SeecoderBokQuestionApi, SeecoderBokQuestionQueryApi {
+
+    private final QuestionService questionService;
+    private final QuestionMapper questionMapper;
+
+    public QuestionController(QuestionService questionService, QuestionMapper questionMapper) {
+        this.questionService = questionService;
+        this.questionMapper = questionMapper;
+    }
+
+    @Override
+    @GetMapping("/question")
+    public Page<QuestionVO> getQuestionList(
+            @RequestParam(name = "stem", required = false) String stem,
+            @RequestParam(name = "tag", required = false) List<String> tags,
+            @RequestParam(name = "type", required = false) List<QuestionType> questionTypes,
+            @RequestParam(name = "weight", required = false) List<Integer> weights,
+            @RequestParam(name = "knowledgeId", required = false) List<String> knowledgeIds,
+            Pageable pageable) {
+        return questionService.find(stem, tags, questionTypes, weights, knowledgeIds, pageable)
+                .map(questionMapper::questionToQuestionVO);
+    }
+
+    @GetMapping("/searchQuestion")
+    public Response getSearchQuestionList(
+            @RequestParam(name = "stem", required = false) String stem,
+            @RequestParam(name = "tag", required = false) List<String> tags,
+            @RequestParam(name = "type", required = false) List<QuestionType> questionTypes,
+            @RequestParam(name = "weight", required = false) List<Integer> weights,
+            @RequestParam(name = "knowledgeId", required = false) List<String> knowledgeIds,
+            @RequestParam(name = "offset", required = false) int offset,
+            @RequestParam(name = "pageSize", required = false) int pageSize) {
+        Pageable pageable = PageRequest.of(offset, pageSize);
+        return Response.buildSuccess(questionService.find(stem, tags, questionTypes, weights, knowledgeIds, pageable)
+                .map(questionMapper::questionToQuestionVO));
+    }
+
+    @GetMapping("/pageQuestion")
+    public Response getTargetQuestionList(
+            @RequestParam(name = "offset", required = false) int offset,
+            @RequestParam(name = "pageSize", required = false) int pageSize) {
+        Pageable pageable = PageRequest.of(offset, pageSize);
+        return Response.buildSuccess(questionService.find(null, null, null, null, null, pageable)
+                .map(questionMapper::questionToQuestionVO));
+    }
+
+    @PostMapping("/question")
+    public Response createQuestion(@NotNull @RequestBody QuestionVO question) {
+        Question rawQuestion = QuestionConvertor.convertToEntity(question);
+        return Response.buildSuccess(QuestionConvertor.convertToVO(
+                questionService.save(rawQuestion)));
+    }
+
+    @Override
+    @PostMapping("/questions")
+    public List<QuestionVO> createQuestions(@NotNull @RequestBody List<QuestionVO> questionVOS) {
+        List<Question> questions = questionVOS.stream().map(questionMapper::questionVOTOQuestion)
+                .collect(Collectors.toList());
+        return StreamSupport.stream(questionService.saveAll(questions).spliterator(), false)
+                .map(questionMapper::questionToQuestionVO).collect(Collectors.toList());
+    }
+
+    @Override
+    @GetMapping("/question/{id}")
+    public Optional<QuestionVO> getQuestionById(
+            @NotBlank @PathVariable(name = "id") String questionId) {
+        return questionService.findById(questionId)
+                .map(questionMapper::questionToQuestionVO);
+    }
+
+    @PutMapping("/question/{id}")
+    public Response updateQuestion(
+            @NotNull @RequestBody QuestionVO question) {
+        Question rawQuestion = QuestionConvertor.convertToEntity(question);
+        return Response.buildSuccess(
+                QuestionConvertor.convertToVO(questionService.save(rawQuestion)));
+    }
+
+    @DeleteMapping("/question/{id}")
+    public Response deleteQuestionById(
+            @NotBlank @PathVariable(name = "id") String questionId) {
+        questionService.delete(questionId);
+        return Response.buildSuccess("Delete Successfully");
+    }
+
+    @Override
+    @GetMapping("/question-query/id")
+    public List<QuestionVO> getQuestionListByIds(@NotNull @RequestParam("id") List<String> ids) {
+        return StreamSupport.stream(questionService.findAllById(ids).spliterator(), false)
+                .map(questionMapper::questionToQuestionVO).collect(Collectors.toList());
+    }
+
+
+    @GetMapping("/state")
+    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER, UserRole.SEEC, UserRole.SEECX})
+    public Response findUncheckedQuestion(
+            @RequestParam(name = "state") QuestionState questionState,
+            @RequestParam(name = "offset", required = false) int offset,
+            @RequestParam(name = "pageSize", required = false) int pageSize
+            ){
+        Pageable pageable = PageRequest.of(offset, pageSize);
+        return Response.buildSuccess(questionService.findUncheckedQuestion(questionState, pageable));
+    }
+
+}

+ 29 - 29
seecoder-bok-server/src/test/java/cn/seecoder/seecoderbokserver/jwtTest.java

@@ -1,29 +1,29 @@
-package cn.seecoder.seecoderbokserver;
-
-import cn.seecoder.seecoderbokserver.aspect.auth.Authorized;
-import cn.seecoder.seecoderbokserver.domain.User;
-import cn.seecoder.seecoderbokserver.util.JwtUtil;
-import com.auth0.jwt.interfaces.Claim;
-import io.jsonwebtoken.Jwt;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-
-/**
- * @author: Leonezhurui
- * @Date: 2021/9/17 - 6:54 下午
- * @Package: SEEC-BOK
- */
-
-public class jwtTest {
-    public static Claim testParse(String token){
-        return JwtUtil.parseJwt(token);
-    }
-
-    public static void main(String[] args) {
-        String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwLnNlZWNvZGVyLmNuIiwic3ViIjoiMTg4NTE5OTkzMDgiLCJhdWQiOiJzZWVjLW1vb2MiLCJhdXRoX3RpbWUiOjE2MzE4NzIxNTEsImlhdCI6MTYzMTg3MjE1MSwiZXhwIjoxNjMxOTU4NTUxLCJ1c2VyX2luZm8iOnsicGhvbmUiOiIxODg1MTk5OTMwOCIsImVtYWlsIjoiMTgxMjUwMjEyQHNtYWlsLm5qdS5lZHUuY24iLCJpZCI6MzY0LCJuYW1lIjoiTGVvbmUiLCJyb2xlIjoiU1RVREVOVCJ9fQ.N_fluvIauktOaDIK-_g6KYO57mFol-gCGVvH_P1WchY";
-        System.out.println(testParse(token).as(User.class).toString());
-//        System.out.println(JwtUtil.getJwtSecret());
-//        System.out.println(JwtUtil.getJpa());
-//        System.out.println(JwtUtil.getDebug());
-    }
-}
+package cn.seecoder.seecoderbokserver;
+
+import cn.seecoder.seecoderbokserver.aspect.auth.Authorized;
+import cn.seecoder.seecoderbokserver.domain.User;
+import cn.seecoder.seecoderbokserver.util.JwtUtil;
+import com.auth0.jwt.interfaces.Claim;
+import io.jsonwebtoken.Jwt;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+
+/**
+ * @author: Leonezhurui
+ * @Date: 2021/9/17 - 6:54 下午
+ * @Package: SEEC-BOK
+ */
+
+public class jwtTest {
+    public static Claim testParse(String token){
+        return JwtUtil.parseJwt(token);
+    }
+
+    public static void main(String[] args) {
+//        String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwLnNlZWNvZGVyLmNuIiwic3ViIjoiMTg4NTE5OTkzMDgiLCJhdWQiOiJzZWVjLW1vb2MiLCJhdXRoX3RpbWUiOjE2MzE4NzIxNTEsImlhdCI6MTYzMTg3MjE1MSwiZXhwIjoxNjMxOTU4NTUxLCJ1c2VyX2luZm8iOnsicGhvbmUiOiIxODg1MTk5OTMwOCIsImVtYWlsIjoiMTgxMjUwMjEyQHNtYWlsLm5qdS5lZHUuY24iLCJpZCI6MzY0LCJuYW1lIjoiTGVvbmUiLCJyb2xlIjoiU1RVREVOVCJ9fQ.N_fluvIauktOaDIK-_g6KYO57mFol-gCGVvH_P1WchY";
+//        System.out.println(testParse(token).as(User.class).toString());
+//        System.out.println(JwtUtil.getJwtSecret());
+//        System.out.println(JwtUtil.getJpa());
+//        System.out.println(JwtUtil.getDebug());
+    }
+}

+ 35 - 35
seecoder-bok-server/src/test/java/cn/seecoder/seecoderbokserver/repository/InteractionRepositoryTest.java

@@ -1,35 +1,35 @@
-package cn.seecoder.seecoderbokserver.repository;
-
-import cn.seecoder.seecoderbokserver.domain.Interaction;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * @author Kunduin
- */
-
-@DataJpaTest
-@Transactional(propagation = Propagation.NOT_SUPPORTED)
-class InteractionRepositoryTest {
-
-    @Autowired
-    private InteractionRepository interactionRepository;
-
-
-    @Test
-    void readInteractions() throws IOException {
-    }
-}
+package cn.seecoder.seecoderbokserver.repository;
+
+import cn.seecoder.seecoderbokserver.domain.Interaction;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author Kunduin
+ */
+
+@DataJpaTest
+@Transactional(propagation = Propagation.NOT_SUPPORTED)
+class InteractionRepositoryTest {
+
+    @Autowired
+    private InteractionRepository interactionRepository;
+
+
+//    @Test
+//    void readInteractions() throws IOException {
+//    }
+}

+ 32 - 32
seecoder-bok-server/src/test/java/cn/seecoder/seecoderbokserver/repository/UserRepositoryTest.java

@@ -1,32 +1,32 @@
-package cn.seecoder.seecoderbokserver.repository;
-
-import cn.seecoder.bok.common.UserRole;
-import cn.seecoder.seecoderbokserver.domain.User;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
-
-/**
- * @author: Leonezhurui
- * @Date: 2021/9/18 - 8:28 上午
- * @Package: SEEC-BOK
- */
-
-@DataJpaTest
-public class UserRepositoryTest {
-    @Autowired
-    private UserRepository userRepository;
-
-    @Test
-    public void testcreate(){
-        User user = new User(9999, UserRole.STUDENT, "xiaosu", "sudeemail@qq.com", "12345678901");
-        System.out.println(UserRole.STUDENT);
-        userRepository.save(user);
-    }
-
-    @Test
-    public void test(){
-        System.out.println("niamde");
-    }
-
-}
+package cn.seecoder.seecoderbokserver.repository;
+
+import cn.seecoder.bok.common.UserRole;
+import cn.seecoder.seecoderbokserver.domain.User;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+
+/**
+ * @author: Leonezhurui
+ * @Date: 2021/9/18 - 8:28 上午
+ * @Package: SEEC-BOK
+ */
+
+@DataJpaTest
+public class UserRepositoryTest {
+    @Autowired
+    private UserRepository userRepository;
+
+//    @Test
+//    public void testcreate(){
+//        User user = new User(9999, UserRole.STUDENT, "xiaosu", "sudeemail@qq.com", "12345678901");
+//        System.out.println(UserRole.STUDENT);
+//        userRepository.save(user);
+//    }
+//
+//    @Test
+//    public void test(){
+//        System.out.println("niamde");
+//    }
+
+}

+ 40 - 13
settings.xml

@@ -1,13 +1,40 @@
-<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
-    					http://maven.apache.org/xsd/settings-1.0.0.xsd">
-    <mirrors>
-        <mirror>
-            <id>aliyunmaven</id>
-            <mirrorOf>*</mirrorOf>
-            <name>阿里云公共仓库</name>
-            <url>https://maven.aliyun.com/repository/public</url>
-        </mirror>
-    </mirrors>
-</settings>
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+    					http://maven.apache.org/xsd/settings-1.0.0.xsd">
+    <mirrors>
+        <mirror>
+            <id>aliyunmaven</id>
+            <mirrorOf>*</mirrorOf>
+            <name>阿里云公共仓库</name>
+            <url>https://maven.aliyun.com/repository/public</url>
+        </mirror>
+    </mirrors>
+    <profiles>
+        <profile>
+            <id>nexus</id>
+            <repositories>
+                <repository>
+                    <id>public</id>
+                    <name>Public Repositories</name>
+                    <url>http://nexus.seecoder.cn/repository/maven-public</url>
+                </repository>
+                <repository>
+                    <id>releases</id>
+                    <name>Public Repositories</name>
+                    <url>http://nexus.seecoder.cn/repository/maven-releases</url>
+                </repository>
+            </repositories>
+        </profile>
+    </profiles>
+    <activeProfiles>
+        <activeProfile>nexus</activeProfile>
+    </activeProfiles>
+    <servers>
+        <server>
+            <id>nexus</id>
+            <username>admin</username>
+            <password>NJU67nexus</password>
+        </server>
+    </servers>
+</settings>