新公司使用的开发工具是Spring Tool Suite, 是针对于Spring开发而在Eclipse的基础上产生的便捷开发工具,创建以Spring为框架的项目十分方便,无需自己配置基本信息,而是依靠SpringBoot完成。借着学习工具的同时,顺便全面点的了解下Maven和Spring的知识,之前都是泛泛的在项目中学习,没能系统的学习下。
1.File->Spring Starter Project
2.选择需要的Spring扩展Web
3.生成项目后打开pom文件,重点是了解Maven和Spring-boot
<?xml version="1.0" encoding="UTF-8"?>
<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.wzz.spring</groupId>
<artifactId>spring-Web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Spring-Web</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 第一行是的xml头,指定了xml文档的版本和编码方式
- project是xml文件的根元素,声明pom相关的命名空间及xsd元素,能够让第三方工具编辑pom(这些属性是非必需的)
- modelVersion Maven的版本号
接下来的元素十分重要,他们定义了一个项目的基本坐标 - groupId 与公司名或者组织名关联,比如com.baidu.myproject三部分分别是商业性质-公司名字-实际项目名字
- artifactId 当前项目在组中的唯一ID,是项目的模块级别,就好比group是班级,artifactId是学生,每个学生在班级内是唯一的,学生与学生之间会有着关联。推荐使用实际项目的名字作为前缀,便于寻找实际构件(因为默认Maven生成的构件是以artifactId作为开头,例如spring-web-0.0.1.jar,spring-mysql-0.0.1.jar,从而明显看出是同一个实际项目的模块构件)
- version 项目的版本,是针对group的版本,SHAPSHOT说明该项目处于开发中
- packaging 打包方式,比如jar包或者war包或者pom,默认是jar包
- classifier (本实例不存在)帮助定义构建输出的一些附属构件,例如通过一些插件会生成spring-web-0.0.1-javadoc.jar的附属构件,所以不能直接定义项目的classifier,它是由插件帮忙产生的
总结:groupId,artifactId,version必须,packaging可选,classifier不可定义。构件文件名:artifactId-version[classifier].packaging - name /description 项目名称及描述
未完待续,刚开始写博客,所以码字较慢;本文的Maven知识多来自《Maven实战》,之前买的书,现在结合项目学习学习。