项目管理利器—Maven总结
1.Maven环境搭建及第一个Maven程序HelloMaven
(1)环境搭建
在课程上找到的maven资源连接maven下载链接,感谢geely老师
环境变量配置如下
然后在环境变量Path中要将%MAVEN_HOME%\bin配置进去!!
cmd窗口输入mvn -v就可以知道是否配置成功!
(2)第一个Maven程序HelloMaven
建立第一个maven项目之前需要明确的搞清楚maven项目的整体骨架,maven整体骨架如下所示
可以选择手动创建文件,也可以选择利用maven的插件archetype进行创建
这是需要了解什么是archetype,[看这个链接]。(https://blog.csdn.net/cx1110162/article/details/78297654)
他有41种骨架,我们先使用命令创建基础骨架
1.mvn archtype:generate(需要进入项目的目录中)。
2.选择archtype quckickstart version,我选择的是6,如下图所示
这时它依次会让你输入groupid和artifactid和version和package,我们会想这些是什么东西?这些实际上可以说是坐标,在pom.xml中它们有关键作用,pom.xml
这又是个什么玩意这个链接!
maven如果使用archtype插件就需要你输入这些信息自动生成pom.xml,如果你手动创建文件则需要自己找其他pom.xml文件并自行修改,pom.xml放在如下图所示的路径
只需要放在src同一位置下target是待会编译后生成的目标文件。
Eleven老师的构建目录如下
生成的pom.xml文件如下所示
<?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.imooc.maven03</groupId>
<artifactId>maven03-service</artifactId>
<version>1.0.0SNAPSHOT</version>
<packaging>jar</packaging>上面输入的内容在这里生成了这段坐标,会有定位maven项目的作用!!!!!!!!!!!
<name>Spring Boot Docker Blank Project (from https://github.com/making/spring-boot-docker-blank)</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.3.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>com.imooc.maven03.service.App</start-class>
<java.version>1.8</java.version>
<docker.image.prefix>${user.name}</docker.image.prefix>
</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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.2.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>${project.build.directory}/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Copy Dockerfile -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/docker</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>rename-file</id>
<phase>validate</phase>
<goals>
<goal>rename</goal>
</goals>
<configuration>
<sourceFile>${project.build.directory}/docker/Dockerfile.txt</sourceFile>
<destinationFile>${project.build.directory}/docker/Dockerfile</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>zip-files</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<zip destfile="${project.build.directory}/app.zip">
<zipfileset dir="${project.build.directory}/docker" />
<zipfileset dir="${project.build.directory}" includes="${project.artifactId}.jar" />
</zip>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
3.cmd使用mvn compile对项目进行编译,cmd要进入到项目的根目录中。
4.cmd使用mvn test对项目进行测试,cmd要进入到项目的根目录中。
maven的基础命令
compile编译,test测试,package打包,clean删除target,install,安装jar到本地仓库中。
这篇博客是Eleven老师的课程中的内容,总结得非常好