├── .gitignore ├── README.md ├── coderiver_base ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── coderiver │ │ └── base │ │ ├── BaseApplication.java │ │ ├── controller │ │ ├── UserController.java │ │ └── exceptionHandler │ │ │ └── BaseExceptionHandler.java │ │ ├── dao │ │ └── UserDao.java │ │ ├── pojo │ │ ├── User.java │ │ └── exception │ │ │ ├── CustomerException.java │ │ │ └── ExceptionInfo.java │ │ └── service │ │ └── UserService.java │ └── resources │ └── application.yml ├── coderiver_common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── coderiver │ └── common │ ├── entity │ ├── PageResult.java │ ├── Result.java │ └── StatusCode.java │ └── util │ └── IdGenerator.java ├── coderiver_config └── pom.xml ├── coderiver_email └── pom.xml ├── coderiver_eureka └── pom.xml ├── coderiver_event └── pom.xml ├── coderiver_friend └── pom.xml ├── coderiver_manager └── pom.xml ├── coderiver_project └── pom.xml ├── coderiver_qa └── pom.xml ├── coderiver_recruit └── pom.xml ├── coderiver_resources └── pom.xml ├── coderiver_search └── pom.xml ├── coderiver_user └── pom.xml ├── coderiver_web └── pom.xml └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | target 3 | *~ 4 | *.class 5 | .settings 6 | .settings/ 7 | .classpath 8 | .project 9 | .idea 10 | .idea/ 11 | *.iml 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # coderiver_platform 2 | CodeRiver Backend Platform (JAVA) 3 | 4 | CodeRiver Java后端项目框架 5 | 6 | //TODO to fill the module descriptions -------------------------------------------------------------------------------- /coderiver_base/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_base 13 | 14 | coderiver_base 15 | 16 | 17 | 18 | org.springframework.boot 19 | spring-boot-starter-data-jpa 20 | 21 | 22 | mysql 23 | mysql-connector-java 24 | 25 | 26 | coderiver_common 27 | com.coderiver 28 | ${coderiver.common.version} 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/BaseApplication.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base; 2 | 3 | import com.coderiver.common.util.IdGenerator; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.context.annotation.Bean; 7 | 8 | /** 9 | * Created by Ultratendency on 2019/1/2. 10 | */ 11 | @SpringBootApplication 12 | public class BaseApplication { 13 | public static void main(String[] args) { 14 | SpringApplication.run(BaseApplication.class, args); 15 | } 16 | 17 | // Init Default Util Beans into Spring Container which will be used in this Service 18 | @Bean 19 | public IdGenerator idGenerator(){ 20 | return new IdGenerator(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.controller; 2 | 3 | import com.coderiver.base.pojo.User; 4 | import com.coderiver.base.pojo.exception.CustomerException; 5 | import com.coderiver.base.service.UserService; 6 | import com.coderiver.common.entity.Result; 7 | import com.coderiver.common.entity.StatusCode; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.*; 10 | 11 | /** 12 | * Created by Ultratendency on 2019/1/2. 13 | */ 14 | @RestController 15 | @CrossOrigin 16 | @RequestMapping("/base/user") 17 | public class UserController { 18 | @Autowired 19 | private UserService userService; 20 | 21 | 22 | @RequestMapping(method = RequestMethod.GET) 23 | public Result findAll(){ 24 | /*if (1 == 1){ 25 | // 测试自定义错误 26 | throw new CustomerException("222", "测试错误"); 27 | }*/ 28 | return new Result(true, StatusCode.OK, "查询成功", userService.findAll()); 29 | } 30 | 31 | @RequestMapping(value = "/{userId}", method = RequestMethod.GET) 32 | public Result findById(@PathVariable("userId") String userId){ 33 | // int n = 1 / 0; // 测试未获取错误 34 | return new Result(true, StatusCode.OK, "查询成功", userService.findById(userId)); 35 | } 36 | 37 | @RequestMapping(method = RequestMethod.POST) 38 | public Result save(@RequestBody User user){ 39 | userService.save(user); 40 | return new Result(true, StatusCode.OK, "添加成功"); 41 | } 42 | 43 | @RequestMapping(value = "/{userId}",method = RequestMethod.PUT) 44 | public Result update(@PathVariable String userId, @RequestBody User user){ 45 | user.setId(userId); 46 | userService.update(user); 47 | return new Result(true, StatusCode.OK, "更新成功"); 48 | } 49 | 50 | @RequestMapping(value = "/{userId}",method = RequestMethod.DELETE) 51 | public Result delete(@PathVariable String userId){ 52 | userService.deleteById(userId); 53 | return new Result(true, StatusCode.OK, "删除成功"); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/controller/exceptionHandler/BaseExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.controller.exceptionHandler; 2 | 3 | import com.coderiver.base.pojo.exception.CustomerException; 4 | import com.coderiver.common.entity.Result; 5 | import com.coderiver.common.entity.StatusCode; 6 | import org.springframework.web.bind.annotation.ExceptionHandler; 7 | import org.springframework.web.bind.annotation.RestControllerAdvice; 8 | 9 | /** 10 | * Created by Ultratendency on 2019/1/2. 11 | * 异常处理类 12 | */ 13 | @RestControllerAdvice 14 | public class BaseExceptionHandler { 15 | 16 | 17 | @ExceptionHandler(value = CustomerException.class) 18 | public Result customer_exception(CustomerException e){ 19 | e.printStackTrace(); 20 | return new Result(false, StatusCode.CUSTOMER_ERROR, "自定义异常", e.getExceptionInfo()); 21 | } 22 | 23 | @ExceptionHandler(value = Exception.class) 24 | public Result exception(Exception e){ 25 | e.printStackTrace(); 26 | return new Result(false, StatusCode.ERROR, e.getMessage()); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.dao; 2 | 3 | import com.coderiver.base.pojo.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | /** 8 | * Created by Ultratendency on 2019/1/2. 9 | */ 10 | public interface UserDao extends JpaRepository, JpaSpecificationExecutor { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/pojo/User.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.pojo; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.Id; 5 | import javax.persistence.Table; 6 | import java.io.Serializable; 7 | 8 | /** 9 | * Created by Ultratendency on 2019/1/2. 10 | */ 11 | @Entity 12 | @Table(name = "user_info") 13 | public class User implements Serializable { 14 | //TODO 补充 15 | @Id 16 | private String id; 17 | 18 | private String name; 19 | private String password; 20 | //TODO 设计数据库表格 再补充 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | public void setId(String id) { 26 | this.id = id; 27 | } 28 | 29 | public String getName() { 30 | return name; 31 | } 32 | 33 | public void setName(String name) { 34 | this.name = name; 35 | } 36 | 37 | public String getPassword() { 38 | return password; 39 | } 40 | 41 | public void setPassword(String password) { 42 | this.password = password; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/pojo/exception/CustomerException.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.pojo.exception; 2 | 3 | /** 4 | * Created by Ultratendency on 2019/1/2. 5 | */ 6 | public class CustomerException extends RuntimeException { 7 | 8 | private String retCd; //异常对应的返回码 9 | private String msgDes; //异常对应的描述信息 10 | 11 | public ExceptionInfo getExceptionInfo(){ 12 | return new ExceptionInfo(this.retCd, this.msgDes); 13 | } 14 | 15 | public CustomerException() { 16 | super(); 17 | } 18 | 19 | public CustomerException(String message) { 20 | super(message); 21 | msgDes = message; 22 | } 23 | 24 | public CustomerException(String retCd, String msgDes) { 25 | super(); 26 | this.retCd = retCd; 27 | this.msgDes = msgDes; 28 | } 29 | 30 | public String getRetCd() { 31 | return retCd; 32 | } 33 | 34 | public String getMsgDes() { 35 | return msgDes; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/pojo/exception/ExceptionInfo.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.pojo.exception; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Created by Ultratendency on 2019/1/2. 7 | */ 8 | public class ExceptionInfo implements Serializable { 9 | private String retCd; //异常对应的返回码 10 | private String msgDes; //异常对应的描述信息 11 | 12 | public ExceptionInfo() { 13 | } 14 | 15 | public ExceptionInfo(String retCd, String msgDes) { 16 | this.retCd = retCd; 17 | this.msgDes = msgDes; 18 | } 19 | 20 | public String getRetCd() { 21 | return retCd; 22 | } 23 | 24 | public void setRetCd(String retCd) { 25 | this.retCd = retCd; 26 | } 27 | 28 | public String getMsgDes() { 29 | return msgDes; 30 | } 31 | 32 | public void setMsgDes(String msgDes) { 33 | this.msgDes = msgDes; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /coderiver_base/src/main/java/com/coderiver/base/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.base.service; 2 | 3 | import com.coderiver.base.dao.UserDao; 4 | import com.coderiver.base.pojo.User; 5 | import com.coderiver.common.util.IdGenerator; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.transaction.annotation.Transactional; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * Created by Ultratendency on 2019/1/2. 14 | */ 15 | @Service 16 | @Transactional 17 | public class UserService { 18 | //TODO 补充 19 | @Autowired 20 | private UserDao userDao; 21 | @Autowired 22 | private IdGenerator idGenerator; 23 | 24 | public List findAll(){ 25 | return userDao.findAll(); 26 | } 27 | 28 | public User findById(String id){ 29 | return userDao.findById(id).get(); 30 | } 31 | 32 | public void save(User user){ 33 | user.setId(idGenerator.nextId() + ""); 34 | userDao.save(user); 35 | } 36 | 37 | public void update(User user){ 38 | userDao.save(user); 39 | } 40 | 41 | public void deleteById(String id){ 42 | userDao.deleteById(id); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /coderiver_base/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 16001 3 | spring: 4 | application: 5 | name: coderiver-base 6 | datasource: 7 | driver-class-name: com.mysql.jdbc.Driver 8 | url: jdbc:mysql://localhost:3306/coderiver_base?characterEncoding=utf-8 9 | username: username 10 | password: password 11 | jpa: 12 | database: mysql 13 | show-sql: true 14 | generate-ddl: false 15 | -------------------------------------------------------------------------------- /coderiver_common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_common 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_common/src/main/java/com/coderiver/common/entity/PageResult.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.common.entity; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by Ultratendency on 2019/1/2. 7 | * 用于统一返回分页数据 8 | */ 9 | public class PageResult { 10 | private long total; 11 | private List rows; 12 | 13 | public PageResult() { 14 | } 15 | 16 | public PageResult(long total, List rows) { 17 | this.total = total; 18 | this.rows = rows; 19 | } 20 | 21 | public long getTotal() { 22 | return total; 23 | } 24 | 25 | public void setTotal(long total) { 26 | this.total = total; 27 | } 28 | 29 | public List getRows() { 30 | return rows; 31 | } 32 | 33 | public void setRows(List rows) { 34 | this.rows = rows; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /coderiver_common/src/main/java/com/coderiver/common/entity/Result.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.common.entity; 2 | 3 | /** 4 | * Created by Ultratendency on 2019/1/2. 5 | * 用于统一返回值 6 | */ 7 | public class Result { 8 | private boolean flag;//是否成功 9 | private Integer code;// 返回码 10 | private String message;// 返回消息 11 | private Object data;// 返回对象数据 12 | 13 | public Result() { 14 | } 15 | 16 | public Result(boolean flag, Integer code, String message) { 17 | this.flag = flag; 18 | this.code = code; 19 | this.message = message; 20 | } 21 | 22 | public Result(boolean flag, Integer code, String message, Object data) { 23 | this.flag = flag; 24 | this.code = code; 25 | this.message = message; 26 | this.data = data; 27 | } 28 | 29 | public boolean isFlag() { 30 | return flag; 31 | } 32 | 33 | public void setFlag(boolean flag) { 34 | this.flag = flag; 35 | } 36 | 37 | public Integer getCode() { 38 | return code; 39 | } 40 | 41 | public void setCode(Integer code) { 42 | this.code = code; 43 | } 44 | 45 | public String getMessage() { 46 | return message; 47 | } 48 | 49 | public void setMessage(String message) { 50 | this.message = message; 51 | } 52 | 53 | public Object getData() { 54 | return data; 55 | } 56 | 57 | public void setData(Object data) { 58 | this.data = data; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /coderiver_common/src/main/java/com/coderiver/common/entity/StatusCode.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.common.entity; 2 | 3 | /** 4 | * Created by Ultratendency on 2019/1/2. 5 | * 统一管理状态码 6 | */ 7 | public class StatusCode { 8 | public static final int OK = 20000; // 成功 9 | public static final int ERROR = 20100; // 失败 10 | public static final int CUSTOMER_ERROR = 20110; // 失败 11 | public static final int LOGINERROR = 20200; //用户名或者密码错误 12 | public static final int ACCESSERROR = 20300; // 权限不足 13 | public static final int REMOTEERROR = 20400; // 远程调用失败 14 | public static final int REPERROR = 20500; // 重复操作 15 | 16 | //TODO 添加状态码 要求统一 17 | } 18 | -------------------------------------------------------------------------------- /coderiver_common/src/main/java/com/coderiver/common/util/IdGenerator.java: -------------------------------------------------------------------------------- 1 | package com.coderiver.common.util; 2 | 3 | import java.lang.management.ManagementFactory; 4 | import java.net.InetAddress; 5 | import java.net.NetworkInterface; 6 | 7 | /** 8 | * Snowflake 雪花算法 分布式id生成工具 9 | * 64位ID (42(毫秒)+5(机器ID)+5(业务编码)+12(重复累加)) 10 | * 11 | * @author Shiyu Rao 12 | */ 13 | public class IdGenerator { 14 | // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动) 15 | private final static long twepoch = 1288834974657L; 16 | // 机器标识位数 17 | private final static long workerIdBits = 5L; 18 | // 数据中心标识位数 19 | private final static long datacenterIdBits = 5L; 20 | // 机器ID最大值 21 | private final static long maxWorkerId = -1L ^ (-1L << workerIdBits); 22 | // 数据中心ID最大值 23 | private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); 24 | // 毫秒内自增位 25 | private final static long sequenceBits = 12L; 26 | // 机器ID偏左移12位 27 | private final static long workerIdShift = sequenceBits; 28 | // 数据中心ID左移17位 29 | private final static long datacenterIdShift = sequenceBits + workerIdBits; 30 | // 时间毫秒左移22位 31 | private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; 32 | 33 | private final static long sequenceMask = -1L ^ (-1L << sequenceBits); 34 | /* 上次生产id时间戳 */ 35 | private static long lastTimestamp = -1L; 36 | // 0,并发控制 37 | private long sequence = 0L; 38 | 39 | private final long workerId; 40 | // 数据标识id部分 41 | private final long datacenterId; 42 | 43 | public IdGenerator(){ 44 | this.datacenterId = getDatacenterId(maxDatacenterId); 45 | this.workerId = getMaxWorkerId(datacenterId, maxWorkerId); 46 | } 47 | /** 48 | * @param workerId 49 | * 工作机器ID 50 | * @param datacenterId 51 | * 序列号 52 | */ 53 | public IdGenerator(long workerId, long datacenterId) { 54 | if (workerId > maxWorkerId || workerId < 0) { 55 | throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId)); 56 | } 57 | if (datacenterId > maxDatacenterId || datacenterId < 0) { 58 | throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId)); 59 | } 60 | this.workerId = workerId; 61 | this.datacenterId = datacenterId; 62 | } 63 | /** 64 | * 获取下一个ID 65 | * 66 | * @return 67 | */ 68 | public synchronized long nextId() { 69 | long timestamp = timeGen(); 70 | if (timestamp < lastTimestamp) { 71 | throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); 72 | } 73 | 74 | if (lastTimestamp == timestamp) { 75 | // 当前毫秒内,则+1 76 | sequence = (sequence + 1) & sequenceMask; 77 | if (sequence == 0) { 78 | // 当前毫秒内计数满了,则等待下一秒 79 | timestamp = tilNextMillis(lastTimestamp); 80 | } 81 | } else { 82 | sequence = 0L; 83 | } 84 | lastTimestamp = timestamp; 85 | // ID偏移组合生成最终的ID,并返回ID 86 | long nextId = ((timestamp - twepoch) << timestampLeftShift) 87 | | (datacenterId << datacenterIdShift) 88 | | (workerId << workerIdShift) | sequence; 89 | 90 | return nextId; 91 | } 92 | 93 | private long tilNextMillis(final long lastTimestamp) { 94 | long timestamp = this.timeGen(); 95 | while (timestamp <= lastTimestamp) { 96 | timestamp = this.timeGen(); 97 | } 98 | return timestamp; 99 | } 100 | 101 | private long timeGen() { 102 | return System.currentTimeMillis(); 103 | } 104 | 105 | /** 106 | *

107 | * 获取 maxWorkerId 108 | *

109 | */ 110 | protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) { 111 | StringBuffer mpid = new StringBuffer(); 112 | mpid.append(datacenterId); 113 | String name = ManagementFactory.getRuntimeMXBean().getName(); 114 | if (!name.isEmpty()) { 115 | /* 116 | * GET jvmPid 117 | */ 118 | mpid.append(name.split("@")[0]); 119 | } 120 | /* 121 | * MAC + PID 的 hashcode 获取16个低位 122 | */ 123 | return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1); 124 | } 125 | 126 | /** 127 | *

128 | * 数据标识id部分 129 | *

130 | */ 131 | protected static long getDatacenterId(long maxDatacenterId) { 132 | long id = 0L; 133 | try { 134 | InetAddress ip = InetAddress.getLocalHost(); 135 | NetworkInterface network = NetworkInterface.getByInetAddress(ip); 136 | if (network == null) { 137 | id = 1L; 138 | } else { 139 | byte[] mac = network.getHardwareAddress(); 140 | id = ((0x000000FF & (long) mac[mac.length - 1]) 141 | | (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6; 142 | id = id % (maxDatacenterId + 1); 143 | } 144 | } catch (Exception e) { 145 | System.out.println(" getDatacenterId: " + e.getMessage()); 146 | } 147 | return id; 148 | } 149 | 150 | 151 | } 152 | -------------------------------------------------------------------------------- /coderiver_config/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_config 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_email/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_email 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_eureka/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_eureka 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_event/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_event 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_friend/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_friend 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_manager/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_manager 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_project/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_project 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_qa/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_qa 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_recruit/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_recruit 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_resources/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_resources 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_search/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_search 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_user/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_user 13 | 14 | 15 | -------------------------------------------------------------------------------- /coderiver_web/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | coderiver_platform 7 | com.coderiver 8 | 1.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | coderiver_web 13 | 14 | 15 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.coderiver 8 | coderiver_platform 9 | 1.0-SNAPSHOT 10 | 11 | coderiver_common 12 | coderiver_base 13 | coderiver_search 14 | coderiver_web 15 | coderiver_manager 16 | coderiver_user 17 | coderiver_eureka 18 | coderiver_config 19 | coderiver_project 20 | coderiver_resources 21 | coderiver_recruit 22 | coderiver_qa 23 | coderiver_email 24 | coderiver_friend 25 | coderiver_event 26 | 27 | pom 28 | 29 | coderiver_platform_parent 30 | CodeRiver后端父工程 31 | 32 | 33 | org.springframework.boot 34 | spring-boot-starter-parent 35 | 2.0.3.RELEASE 36 | 37 | 38 | 39 | 40 | UTF-8 41 | UTF-8 42 | 1.8 43 | 1.0-SNAPSHOT 44 | 45 | 46 | 47 | 48 | org.springframework.boot 49 | spring-boot-starter-web 50 | 51 | 52 | org.springframework.boot 53 | spring-boot-starter-test 54 | test 55 | 56 | 57 | 58 | 59 | 60 | spring-snapshots 61 | Spring Snapshots 62 | https://repo.spring.io/snapshot 63 | 64 | true 65 | 66 | 67 | 68 | spring-milestones 69 | Spring Milestones 70 | https://repo.spring.io/milestone 71 | 72 | false 73 | 74 | 75 | 76 | 77 | 78 | 79 | spring-snapshots 80 | Spring Snapshots 81 | https://repo.spring.io/snapshot 82 | 83 | true 84 | 85 | 86 | 87 | spring-milestones 88 | Spring Milestones 89 | https://repo.spring.io/milestone 90 | 91 | false 92 | 93 | 94 | 95 | 96 | 97 | --------------------------------------------------------------------------------