目標:代碼提交時,透過Jenkins自動處理上傳的代碼並發布到Maven Repository
記得要先在Maven Project的pom.xml加入<distributionManagement>和maven-compiler-plugin,下方是示範的pom.xml
sudo apt-get update
sudo apt upgrade -y
sudo apt install openjdk-8-jre-headless vim -y
cd /opt
sudo wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
sudo tar -zxvf latest-unix.tar.gz
sudo mv nexus-3.59.0-01 nexus
sudo adduser nexus
sudo chown -R nexus:nexus /opt/nexus
sudo mkdir /opt/sonatype-work
sudo chown -R nexus:nexus /opt/sonatype-work
# 添加運行使用者
sudo vim /opt/nexus/bin/nexus.rc
run_as_user="nexus"
# 編輯Nexus Service
sudo vim /etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
# 啟動Nexus服務
sudo systemctl enable --now nexus
upstream backend {
server 10.10.10.52:8081;
}
server {
listen 80;
listen [::]:80;
http2 on;
server_name xx.com;
rewrite ^(.*) https://xx.com$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name xx.com;
ssl_certificate fullchain.pem;
ssl_certificate_key privkey.pem;
access_log /var/log/nginx/nexus.access.log;
error_log /var/log/nginx/nexus.error.log;
location / {
proxy_pass http://backend;
proxy_max_temp_file_size 0;
client_max_body_size 1G;
client_body_buffer_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
}
}