maven 编程不良人视频
maven 小白入门实战–编程不良人
https://www.bilibili.com/video/BV1QE411x7cJ?p=2
1,2 -----20201124 read
共6个小时
P1.maven的引言----------------------46:00
P2.maven的第一个环境搭建--------------------41:40
P3.maven与现有工具集成--------------------34:07
P4.maven中坐标依赖使用和maven中执行构建命令--------------------26:18
P5.maven中配置阿里云镜像--------------------40:45
P6.maven中创建web项目--------------------24:37
P7.使用maven构建SM整合开发--------------------30:03
P8.maven中scope属性解释--------------------46:29
P9.mybatis中动态sql--------------------59.13
常用指令
项目 | Value |
---|---|
mvn package | 打包 |
mvn site | 产生site |
mvn test | 运行测试 |
mvn compile | 编译 |
mvn test-compile | 编译测试代码 |
mvn archetype:generate | 反向生成项目的骨架 |
mvn jar | 生成jar包 |
mvn install | 本地安装 |
mvn clean | 清除编译后的项目文件 |
mvn eclipse:eclipse | 生成eclipse项目 |
mvn idea:idea | 生成idea项目 |
mvn -Dtest package | 只打包不测试 |
mvn test -skipping comiple | 只测试不编译 |
mvn dependency:list | 查看当前项目已被解析的依赖 |
mvn deploy | 上传到私服 |
mvn source:jar | 源码打包 |
mvn -e | 显示详细错误信息 |
mvn validate | 验证工程是否正确 |
mvn jetty:run | 运行项目于jetty上 |
maven指令学习
*********************************************************************************
Maven常用命令:https://www.cnblogs.com/wkrbky/p/6352188.html
Maven依赖查询:http://mvnrepository.com/
4. 编译源代码:
mvn compile
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn compile
[INFO] Compiling 29 source files to D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
5. 编译测试代码:
mvn test-compile
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn test-compile
6. 运行测试:
mvn test
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn test
7. 产生site:
mvn site
执行mvn site命令生成应用程序文档
注意:实际执行过程中会从内网服务器下载jar包到本地,此指令需再学习
8. 打包:
mvn package
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn package
9. 在本地Repository中安装jar:
mvn install -------------执行失败,原因待学习
例:installing D:\xxx\xx.jar to D:\xx\xxxx
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn install target\syncVehDataFromCrm-1.0-SNAPSHOT.jar to D:\tmp\
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'D' in the current project
10. 清除产生的项目:
mvn clean
清空本地项目target目录下的文件
14. 编译测试的内容:
mvn test-compile
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn clean
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn test-compile
15. 只打jar包:
mvn jar:jar
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn jar:jar
18.查看当前项目已被解析的依赖:
mvn dependency:list
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn dependency:list
[INFO]
[INFO] The following files have been resolved:
[INFO] org.springframework.boot:spring-boot-starter:jar:2.1.2.RELEASE:compile
[INFO] org.springframework.boot:spring-boot:jar:2.1.2.RELEASE:compile
[INFO] org.springframework:spring-context:jar:5.1.4.RELEASE:compile
[INFO] org.springframework:spring-aop:jar:5.1.4.RELEASE:compile
21. 源码打包:
mvn source:jar
22. mvn compile与mvn install、mvn deploy的区别
mvn compile,编译类文件
mvn package, 打包文件
mvn install,包含mvn compile,mvn package,然后上传到本地仓库
mvn deploy,包含mvn install,然后,上传到私服
1. 显示版本信息 :
mvn -version/-v
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: C:\Program Files\maven\apache-maven-3.5.2\bin\..
Java version: 1.8.0_162, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_64\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
3. 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件 :
mvn package
6. 验证工程是否正确,所有需要的资源是否可用:
mvn validate
8. 运行任何检查,验证包是否有效且达到质量标准:
mvn verify
22. 打印出已解决依赖的列表 :
mvn dependency:resolve
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn dependency:resolve
[INFO] The following files have been resolved:
[INFO] org.springframework.boot:spring-boot-starter:jar:2.1.2.RELEASE:compile
[INFO] org.springframework.boot:spring-boot:jar:2.1.2.RELEASE:compile
[INFO] org.springframework:spring-context:jar:5.1.4.RELEASE:compile
[INFO] org.springframework:spring-aop:jar:5.1.4.RELEASE:compile
23. 打印整个依赖树 :
mvn dependency:tree
D:\03_SVN\net\徐工基础2018\syncVehDataFromCrm>mvn dependency:tree
[INFO] com.tiza.xcmg:syncVehDataFromCrm:jar:1.0-SNAPSHOT
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.1.2.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:2.1.2.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:5.1.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.1.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.1.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-expression:jar:5.1.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.1.2.RELEASE:compile
[INFO] | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.11.1:compile
[INFO] | | | \- org.apache.logging.log4j:log4j-api:jar:2.11.1:compile
[INFO] | | \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
最简单的 maven 打包helloWorld 示例
package com.tiza.leo.release;
/**
* Author: tz_wl
* Date: 2021/1/11 15:04
* Content:
*/
public class App {
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
try {
Thread.sleep(4000); // 4 秒 打印一次
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(" currentTime is :" + System.currentTimeMillis());
}
}
}
D:\05_CodeFromLeo\JAVA\TestMavenRelease\testRelease\src\main\java
提示: 生成可执行jar运行提示没有主清单属性
D:\05_CodeFromLeo\JAVA\TestMavenRelease\testRelease\src
正常的Directory路径
关于 META-INFO
默认没有添加springboot-maven插件情况下的打包 没有main 运行会报错
mvn clean
mvn package
java -jar *** ,会提示找不到main 报错
生成的 META-INFO/MANIFEST.MF 文件
Manifest-Version: 1.0
Implementation-Title: testRelease
Implementation-Version: 1.0-SNAPSHOT
Built-By: tz_wl
Implementation-Vendor-Id: com.tiza.leo
Created-By: Apache Maven 3.5.2
Build-Jdk: 1.8.0_162
Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo
ot-starter-parent/testRelease
Main-Class: com.tiza.leo.release.App
添加springboot-maven插件情况下的打包
pom文件中 增加 节点下的节点 ,配置增加 springboot maven 插件 用于打包
<properties>
<start-class>com.tiza.leo.release.App</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.3.RELEASE</version>
<configuration>
<mainClass>${start-class}</mainClass>
<!--layout 属性用来指定打成 jar 还是 war 文件,可用的值包括:ZIP 、JAR 、WAR、 NONE 注意大小写-->
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<!-- spring-boot-maven-plugin 的构建目标:
spring-boot:run 运行你的Springboot应用
spring-boot:repackage 将mvn package 生成的 jar或者war 重新打包成可执行文件,同时修改原文件名,增加.origin 后缀
spring-boot:start 与 spring-boot:stop 用来管理Springboot应用的生命周期(例如,mvn integration-test 集成测试阶段)
spring-boot:build-info 生成构建信息build-info.properties 可供Actuator 使用-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
mvn clean
mvn package
Manifest-Version: 1.0
Implementation-Title: testRelease
Implementation-Version: 1.0-SNAPSHOT
Built-By: tz_wl
Implementation-Vendor-Id: com.tiza.leo
Spring-Boot-Version: 2.1.3.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.tiza.leo.release.App
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.5.2
Build-Jdk: 1.8.0_162
Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo
ot-starter-parent/testRelease
用包含 spring-boot-maven-plugin 的插件配置,
执行 mvn clean 后 ,
执行 mvn package 后 ,
再执行 java -jar
D:\05_CodeFromLeo\JAVA\TestMavenRelease\testRelease>java -jar target\testRelease-1.0-SNAPSHOT.jar