搭建 maven 服务器
创建 nexus 数据存放目录并赋权
因为 sonatype/nexus3 镜像使用 200 运行 所以将文件夹赋予 200
mkdir -p /docker/nexus/data && chown -R 200 /docker/nexus/data
创建 docker-compose.yml 文件
vim /docker/nexus/docker-compose.yml
version: '3.7'
services:
nexus:
image: sonatype/nexus3
# user: root
# privileged: true
container_name: nexus
restart: always
ports:
- "9081:8081"
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
deploy:
resources:
limits:
cpus: '0.9'
memory: 500M
reservations:
cpus: '0.5'
memory: 500M
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /docker/nexus/data:/nexus-data
healthcheck:
test: curl https://localhost:8081 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
interval: 30s
timeout: 10s
retries: 5
networks:
- nexus
networks:
nexus:
启动 nexus 服务
docker-compose up -d
启动完毕后 会在 /docker/nexus/data/admin.password 生成 admin 临时登陆密码
# 获取临时登陆密码
cat /docker/nexus/data/admin.password
使用 admin 此密码登陆
IP:9081
登陆后会强制要求更改 admin 密码
上传 jar包
使用 idea 上传 自己开发的项目( pom 打包 jar 格式) 到私服
使用命令行上传 jar 包 到私服
mvn deploy:deploy-file -DgroupId=com.blankhang -DartifactId=test -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=D:\jar\test-1.0.0-SNAPSHOT.jar -Durl=http://IP:9081/repository/maven-snapshots/ -DrepositoryId=maven-snapshots
配置私服到项目中
<!--依赖仓库配置 (从私服下载已上传的私有jar包需要)-->
<repositories>
<!-- 自有私服 -->
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://IP:9081/repository/maven-releases/</url>
</repository>
<!-- 自有私服 -->
<repository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://IP:9081/repository/maven-snapshots/</url>
</repository>
<repositories>
<!--私服仓库 (发布到私服需要)-->
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://IP:9081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://IP:9081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
添加发布插件
<build>
<plugins>
<!--添加发布jar包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8</version>
</plugin>
<!--发布源码的插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
配置maven
settings
文件的服务器用户名密码
一般在 用户目录下 (win)C:\Users{USERNAME}.m2\setting.xml
# 注意:id必须和私服中releases和snapshots仓库名一致
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
重新打开项目,对需要的模块进行 deploy 即可自动上传成私服
参阅 https://hub.docker.com/r/sonatype/nexus3