gradle转maven-用maven配置java项目的一些笔记
项目初建用的是gradle,应ops要求,要改成maven的,无论是gradle还是maven,其目标如下
- 管理模块
modules标签管理模块
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
- 管理依赖(包括版本统一)
父模块中:
定义版本号变量:
<properties>
<springBootVersion>1.5.7.RELEASE</springBootVersion>
<jacksonVersion>2.8.10</jacksonVersion>
<swaggerVersion>2.7.0</swaggerVersion>
<hibernateVersion>5.4.1.Final</hibernateVersion>
<poiVersion>3.15</poiVersion>
</properties>
用dependencyManagement标签管理引用和版本
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>${hibernateVersion}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernateVersion}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jacksonVersion}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jacksonVersion}</version>
<scope>compile</scope>
</dependency>
</dependencyManagement>
子模块中:
用parent标签继承父模块配置
<parent>
<groupId>parent_groupId</groupId>
<artifactId>parent_artifactId</artifactId>
<version>parent_version</version>
</parent>
用dependencies标签声明依赖,这里不用标注版本号,由parent统一管理
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
- 生成可直接运行的spring boot jar
在子模块中声明变量
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.source>1.8</project.build.source>
<project.build.target>1.8</project.build.target>
<start-class>*.ApiApplication</start-class>
</properties>
引入插件:spring-boot-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<!--启动的Main类-->
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
</plugins>
</build>