maven理解,常用指令,以及常规报错汇总。
# Maven常用指令
# 常用指令
# 打包项目到本地,一般在target文件夹下;
# 依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)
mvn clean package
# 打包到本地仓库,根据settings.xml文件夹中指定路径;
# 依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install
mvn clean install
# 打包上传到远程仓库,如私服nexus等,需要配置相应的pom.xml文件;
# 依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy
mvn clean deploy
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
父子工程版本依赖,父工程一般包含pom.xml及里面相应依赖的版本设定;子工程依赖父工程
# pom.xml配置文件说明(gav)
- groupId:顾名思义,即组织或公司,一般我们会用公司或者自己的前几级包名来进行定义。
- artifactId:这个值定义的是本项目的名字。
- version:这个项目在maven进行发布以后的版本号。
<parent>
<groupId>com.hjwu.pomdemo</groupId
<artifactId>helloworld-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
1
2
3
4
5
2
3
4
5
SNAPSHOT开发版本- 打包
< packaging >< /packaging >对应打包方式,一般为war、jar
<artifactId>helloworld-app-service</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>helloworld-app-service</name>
1
2
3
4
2
3
4
# 清除仓库
清除本地仓库因为网络或者配置文件导致下载失败生成的lastUpdated的文件,保存下列文件为bat后缀文件,双击运行即可
# 设置本地仓库路径
set REPOSITORY_PATH=C:\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
del /s /q %%i
)
rem 搜索完毕
pause
# 或者 ctrl + R 切换到 本地仓库路径,输入下列指令
for /r %i in (*.lastUpdated) do del %i
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 其他问题
# 1. 本地tomcat启动报错
报错unkown the request
原因:可能是tomcat端口被占用,
解决:cmd -> netstat -aon|findstr 端口号,找出占用该端口的进程和pid,在任务管理器里找出对象pid停掉,或者换tomcat启动端口
# 2. 流水线无法更新pom.xml
报错如下,意思是“在 XXX的更新间隔过去或强制更新之前,不会重新尝试解析”。
resolution will not be reattempted until the update interval of XXX has elapsed or updates are force
如果你去本地的maven仓库,你会发现,其只有lastUpdate结尾的文件,没有jar包,或着pom文件的。
这个时候,你无论怎么点击IDEA中的Reimports All Maven Projects都是没有用的。原因上面也说了,要么等更新时间过去,要么强制更新。
maven的默认更新时间为day,即一天更新一次。
解决:
所以我们一般都是采用强制更新的方式,到对应工程目录先,执行maven指令 mvn clean install -U
修改settings.xml
修改**settings.xml**,添加`always `;
<repositories>
<repository>
<id>xr-snapshots</id>
<url>http://nexus.alibaba.com/repository/snapshots/</url>
<snapshots>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>xr-plugins</id>
<name>xingren plugins</name>
<url>http://nexus.alibaba.com/repository/public/</url>
<releases>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34