目录
maven私服nexus搭建
1、maven介绍
2、maven私服仓库图示
3、maven下载安装和配置
3.1 下载maven
3.2 配置安装目录下conf\settings.xml文件
4、idea中安装配置maven
5、maven生命周期
6、maven项目对象模型(pom)
7、maven私服-nexus
7.1 下载nexus
7.2 需要在虚拟机上上传解压使用,选择-unix.tar.gz文件
7.3 解压
7.4 配置nexus
7.5 运行nexus
7.6 查看nexus的运行状态
7.7 配置私有仓库
7.8 批量上传本地文件到自定义仓库中
7.9 导入本地仓库到nexus私有仓库
7.10 idea项目中引用nexus库
7.11 最后部署项目
mybatisplus
Maven这个单词来自于意第绪语(犹太语),意为知识的积累。
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
maven体系结构
图片来源:https://blog.csdn.net/weixin_56697114/article/details/117638352
访问网站 https://maven.apache.org,以apache-maven-3.6.3为例
配置本地仓库位置
示例:
D:\Java_env\maven\resp
配置镜像
由于中央仓库在境外,网络访问不稳定,故在开发过程中大多配置中央仓库的镜像仓库。
示例:
aliyunmaven
*
阿里云公共仓库
https://maven.aliyun.com/repository/public
配置profile
配置maven默认使用的jdk环境。
示例:
jdk-1.8
true
1.8
1.8
1.8
1.8
在idea中打开File/Settings,查找Maven
图片来源:https://m.runoob.com/maven/maven-build-life-cycle.html
访问官网: https://help.sonatype.com/repomanager3/product-information/download
Linux服务器中创建文件夹nexus并上传压缩包nexus-3.61.0-02-unix.tar.gz
tar -zxvf nexus-3.61.0-02-unix.tar.gz
进入nexus-3.61.0-02/bin文件夹
/usr/local/software/nexus/nexus-3.61.0-02/bin
编辑nexus.vmoptions文件
根据自己机器内存大小,适当配置内存。内存太小未来启动nexus会失败。
vim nexus.vmoptions
配置端口(默认8081,如不修改可忽略)
开放防火墙8081端口
运行命令./nexus start,starting nexus表示已启动
nexus-3.40.1 : 服务器文件夹,启动程序等。
sonatype-work: 工作空间,数据文件。
在浏览器中输入http://本机虚拟机ip:8081,登录
根据查询到的账号admin的密码,登录并修改密码
nexus中默认仓库
maven-releases (Version policy=Release)默认只允许上传不带SNAPSHOT版本尾缀的包,默认部署策略是Disable redeploy 不允许重复上传相同版本号信息的jar,避免包版本更新以后使用方无法获取到最新的包。
maven-snapshots (Version policy=Snapshot)只允许上传带SNAPSHOT版本尾缀的包,默认部署策略是Allow redeploy,允许重复上传相同版本号信息的jar,每次上传的时候会在jar的版本号上面增加时间后缀信息。
maven-central 中央仓库的拷贝,如果环境可以访问中央仓库,则可以获取到相关的包,否则没用
maven-public 仓库组,不是实际个一个仓库地址,只是将现有的组合到一次,可以通过它看到所属组内全部仓库的jar信息
创建自定义仓库
选择maven2(hosted)
将新建仓库添加到maven-public群组中
选中maven-public群组,将新仓库add之后访问maven-public就可以访问自己的私有仓库了。
首先上传本地仓库内容到linux服务器
编辑批量上传脚本
在本地仓库上传的文件夹(repo)下创建touch一个shell脚本,命名 repo.sh
编辑脚本
vim repo.sh
插入内容 i
#!/bin/bash while getopts ":r:u:p:" opt; do case $opt in r) REPO_URL="$OPTARG" ;; u) USERNAME="$OPTARG" ;; p) PASSWORD="$OPTARG" ;; esac done find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
保存并退出。
添加脚本执行权限
chmod +x repo.sh
./repo.sh -u nexus用户名 -p nexus密码 -r 仓库地址
示例:
./repo.sh -u admin -p 123 -r http://ip地址:8081/repository/****-repository/
在maven的conf/settings.xml中配置server
****-repository
admin
123
在maven中配置nexus镜像
中央仓库的资源从阿里云访问,其它资源来自nexus私服。
****maven
*
****-repository
https://ip地址:8081/repository/maven-public/
idea项目中配置发布管理
在项目的pom.xml文件中添加
wnhz-repository
http://192.168.198.128:8081/repository/wnhz-repository/
在maven中运行部署,部署(deploy)项目到私服。部署成功后可到nexus网站查看。
引入依赖
mysql
mysql-connector-java
com.alibaba
druid-spring-boot-starter
1.2.18
com.baomidou
mybatis-plus-boot-starter
3.5.3.1
实体类映射
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("type_tab")
public class Type {
@TableId(value = "type_id",type = IdType.AUTO)
private Integer id;
@TableField("type_name")
private String name;
@TableField("type_create_by")
private String createBy;
@TableField("type_create_time")
private Date createTime;
@TableField("type_update_time")
private Date updateTime;
}
yml配置
Dao
@Mapper
public interface TypeDao extends BaseMapper {
}
Service 以及实现类
单元测试
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class BookServiceImplTest {
@Autowired
private BookService bookService;
@Test
public void saveType() {
bookService.saveType(new Type(null,"历史类","admin",new Date(),new Date()));
}
@Test
public void findAll() {
System.out.println(bookService.findAll());
}
}
查看控制台和数据库,测试成功。
————————————————————————————————
感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!