开始创建maven项目
菜单 -> File -> New -> Other -> Maven -> Maven -> Maven Project -> New Maven Project
勾上这个 Create a simple project (skip archetype selection)
group Id 包名 例如 com.svc.demo
Artifact Id 项目名 springboot-svc-demo
最终pom.xml如下(mavne是通过pom.xml来维护管理项目的,最终只要维护pom .xml即可)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.svc.demo</groupId>
<artifactId>springboot-svc-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--
<name>springboot-svc-demo</name>
<url>http://maven.apache.org</url>
-->
<!-- 引入springboot parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent>
<!-- 引入springCloud,单独springboot不需要-->
<!--
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Edgware.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!--swagger2组件
<springfox-swagger2.version>2.6.0</springfox-swagger2.version>
-->
<!--格式化mavne时间
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
-->
</properties>
<!-- 依赖组件-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--thymeleaf 模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--测试组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--添加html5支持-->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
<!-- 热启动,便于开发
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
-->
<!--web 组件-->
<!--
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
-->
<!-- 添加Swagger2依赖,用于生成接口文档
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
-->
</dependencies>
<build>
<plugins>
<!--打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- YUI Compressor Maven js,css压缩插件 -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 读取js,css文件采用UTF-8编码默认就是utf-8 -->
<encoding>UTF-8</encoding>
<!-- 不显示js可能的错误 -->
<jswarn>false</jswarn>
<!-- 若存在已压缩的文件,会先对比源文件是否有改动 有改动便压缩,无改动就不压缩 -->
<force>true</force>
<!-- 在指定的列号后插入新行 -->
<linebreakpos>-1</linebreakpos>
<!-- 压缩之前先执行聚合文件操作 -->
<preProcessAggregates>true</preProcessAggregates>
<!-- 压缩后保存文件后缀 无后缀 -->
<nosuffix>true</nosuffix>
<!-- 源目录,即需压缩的根目录 -->
<sourceDirectory>src/main/static</sourceDirectory>
<outputDirectory>target/classes</outputDirectory>
<force>true</force>
<!-- 压缩js和css文件 -->
<includes>
<include>*/js/**/*.js</include>
<include>*/css/**/*.css</include>
</includes>
<excludes>
<exclude>**/*.min.js</exclude>
<exclude>**/*-min.js</exclude>
<exclude>**/index/carousel.js</exclude>
<exclude>**/3dprint/layer/**/*.js</exclude>
</excludes>
</configuration>
</plugin>
<!-- html页面中的 css,js添加版本号插件 -->
<!--plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>${basedir}/target/classes/templates/*.html</include>
<include>${basedir}/target/classes/templates/**/*.html</include>
</includes>
<replacements>
<replacement>
<token>\.css\"</token>
<value>.css?v=${maven.build.timestamp}\"</value>
</replacement>
<replacement>
<token>\.css\'</token>
<value>.css?v=${maven.build.timestamp}\'</value>
</replacement>
<replacement>
<token>\.js\"</token>
<value>.js?v=${maven.build.timestamp}\"</value>
</replacement>
<replacement>
<token>\.js\'</token>
<value>.js?v=${maven.build.timestamp}\'</value>
</replacement>
</replacements>
</configuration>
</plugin-->
</plugins>
</build>
</project>
创建启动入口以及项目结构
@SpringBootApplication
public class Application extends SpringBootServletInitializer
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
├── clean-run.sh
├── logs/ 日志文件目录
│ ├── sb2-web_test_2018-06-02_0959.0.log
│ └── sb2-web_test.log
|
├── mvnw
├── mvnw.cmd
├── pom.xml
├── pysrc/ python 脚本目录
├── README.md
├── src/ 源文件目录
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── mydomain
│ │ │ ├── guru/ 工具包目录
│ │ │ │ ├── AccountValidator.java
│ │ │ │ ├── DateConverter.java
│ │ │ │ ├── JsonBeanUtil.java
│ │ │ │ ......
│ │ │ └── webapi/ web 接口目录
│ │ │ ├── Application.java
│ │ │ ├── config/ sb2 app 配置文件目录
│ │ │ │ ├── CORSFilter.java
│ │ │ │ ├── JwtAuthenticationEntryPoint.java
│ │ │ │ ├── JwtAuthenticationFilter.java
│ │ │ │ ├── WebMvcConfig.java
│ │ │ │ ├── WebSecurityConfig.java
│ │ │ │ └── ......
│ │ │ ├── controller/ 控制器目录
│ │ │ │ ├── AuthenticationController.java
│ │ │ │ ├── KaptchaController.java
│ │ │ │ └── UserController.java
│ │ │ ├── dao/ DAO 目录 (或者称为:repository)
│ │ │ │ ├── KaptchaTokenDao.java
│ │ │ │ └── UserDao.java
│ │ │ ├── model/ Model 目录 (绑定数据表)
│ │ │ │ ├── AuthToken.java
│ │ │ │ ├── Constants.java
│ │ │ │ ├── dto/ DTO 数据传输组件目录
│ │ │ │ │ ├── KaptchaTokenDto.java
│ │ │ │ │ └── UserDto.java
│ │ │ │ ├── KaptchaToken.java
│ │ │ │ ├── LoginUser.java
│ │ │ │ ├── Role.java
│ │ │ │ └── User.java
│ │ │ └── service/ 服务接口目录
│ │ │ ├── impl/ 服务接口实现目录
│ │ │ │ ├── KaptchaTokenServiceImpl.java
│ │ │ │ └── UserServiceImpl.java
│ │ │ ├── KaptchaTokenService.java
│ │ │ └── UserService.java
│ │ └── resources/ 资源总目录
│ │ ├── application-dev.properties 开发配置
│ │ ├── application-prod.properties 产品配置
│ │ ├── application.properties 当前配置
│ │ ├── application-test.properties 测试配置
│ │ ├── kaptcha.properties 图片验证码配置
│ │ ├── logback-spring.xml 日志文件配置
│ │ ├── mysql-webapi.cresql 数据库创建语句
│ │ └── templates/ web 模板目录
│ │ │ ├── user/
│ │ │ ├── login.html
│ │ │ ......
│ │ ├── static/ 静态资源目录
│ │ ├── bootstrap-4.1.0/
│ │ │ ├── css/
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap-grid.css
│ │ │ │ ├── bootstrap-grid.css.map
│ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ ├── bootstrap-grid.min.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap.min.css.map
│ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ ├── bootstrap-reboot.css.map
│ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ └── bootstrap-reboot.min.css.map
│ │ │ └── js
│ │ │ ├── bootstrap.bundle.js
│ │ │ ├── bootstrap.bundle.js.map
│ │ │ ├── bootstrap.bundle.min.js
│ │ │ ├── bootstrap.bundle.min.js.map
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.js.map
│ │ │ ├── bootstrap.min.js
│ │ │ └── bootstrap.min.js.map
│ │ ├── css
│ │ │ └── common.css
│ │ └── js
│ │ └── jquery
│ │ ├── jquery-1.11.2.min.js
│ │ └── jquery.min.map
│ └── test
│ └── java
│ └── com
│ └── yourdomain
│ └── webapi/
│ ├── ApplicationTests.java
│ └── UserDocumentationTests.java 自动文档生成测试
└── update-build.sh 源文件自动版本更新脚本