mvn基于命令行推送包到私服
推送命令
mvn deploy \
-DaltDeploymentRepository=nexus-snapshots::http://nexus.xxx.com/repository/maven-snapshots/
-DaltDeploymentRepository参数解释
1 | -DaltDeploymentRepository=nexus-snapshots::default::http://nexus.xxx.com/repository/maven-snapshots/ |
是Maven Deploy Plugin的临时发布仓库配置完整格式:
1 | -DaltDeploymentRepository=<id>::<layout>::<url> |
拆解:
| 部分 | 示例 | 含义 |
|---|---|---|
| id | nexus-snapshots |
仓库唯一标识,对应 Maven settings.xml 的 server id |
| layout | default |
仓库布局类型 |
| url | http://nexus.xxx.com/repository/maven-snapshots/ |
远程 Maven 仓库地址(注意不能是proxy/group地址) |
1. id:nexus-snapshots
1 | nexus-snapshots |
用于关联认证信息。例如:~/.m2/settings.xml
1 | <servers> |
Maven deploy 时:
altDeploymentRepository.id
|
|
settings.xml.server.id
匹配后使用用户名密码。
2. default 是什么?
1 | default |
表示Maven 仓库布局类型(repository layout)
groupId
↓
artifactId
↓
version
例如:
1 | com/pricealgo/ |
对应:
1 | <groupId>com.pricealgo</groupId> |
3. 为什么需要 default?
Maven Deploy Plugin 需要知道,如何把 GAV 坐标转换成目录结构。
例如:
1 | <groupId>com.pricealgo</groupId> |
使用:
default layout
生成:
com/
└── pricealgo/
└── valuation-service-api/
└── 0.0.1-SNAPSHOT/
4. 新版本 Maven 可以省略 default 吗?
可以Maven deploy plugin 3.x 推荐格式:
1 | -DaltDeploymentRepository=nexus-snapshots::http://nexus.xxx.com/repository/maven-snapshots/ |
例如:
1 | mvn deploy \ |
新版:
id::url
等价于:
id::default::url