Step 1: Login to your Linux server and update the yum packages. Also install required utilities.
yum update -y sudo yum install wget -y java -version sudo yum install java-1.8.0-openjdk.x86_64 -y
Step 2: Download the latest nexus. You can get the latest download links fo for nexus from here.
cd /opt sudo wget -O latest-unix.tar.gz https://download.sonatype.com/nexus/3/latest-unix.tar.gz tar -xvzf latest-unix.tar.gz sudo mv nexus-3* nexus mv sonatype-work nexusdata ls -lh
Step 3: Set User/Permissions and Configurations
useradd --system --no-create-home nexus chown -R nexus:nexus /opt/nexus chown -R nexus:nexus /opt/nexusdata
Edit /opt/nexus/bin/nexus.vmoptions
file
vi /opt/nexus/bin/nexus.vmoptions
-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../nexusdata/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../nexusdata/nexus3 -Dkaraf.log=../nexusdata/nexus3/log -Djava.io.tmpdir=../nexusdata/nexus3/tmp -Dkaraf.startLocalConsole=false
Edit nexus.rc
file.
vi /opt/nexus/bin/nexus.rc
Uncomment run_as_user
parameter and add new value.
run_as_user="nexus"
We need to modify the nexus-default.properties
file.
vi /opt/nexus/etc/nexus-default.properties
Change application-host=0.0.0.0
and port application-host=9081
Configure the open file limit of the nexus user.
vi /etc/security/limits.conf
Add the below values to the file.
nexus - nofile 65536
Step 4: Set Nexus as a System Service
Create the Systemd service file in /etc/systemd/system/
.
sudo vi /etc/systemd/system/nexus.service
Add the following contents to the unit file.
[Unit] Description=Nexus Service After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Group=nexus Restart=on-failure [Install] WantedBy=multi-user.target
Manage Nexus Service, Execute the following command to add nexus service to boot.
systemctl daemon-reload systemctl enable nexus.service systemctl start nexus.service
Monitor the log file.
tail -f /opt/nexusdata/nexus3/log/nexus.log
Check the running service port.
netstat -tunlp | grep 9081
Show default login password.
cat /opt/nexusdata/nexus3/admin.password
Deploy and Use Artifacts in Spring Boot Project
Create or Edit this ~/.m2/settings.xml
file:
vi ~/.m2/settings.xml
Update contents of the file.
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd"> <!-- unblock so that we can download artifacts from nexus repo --> <mirrors> <mirror> <id>maven-default-http-blocker</id> <mirrorOf>dummy</mirrorOf> <name>Dummy mirror to override default blocking mirror that blocks http</name> <url>http://0.0.0.0/</url> </mirror> </mirrors> <!--nexus server configuration--> <servers> <server> <id>nexus</id> <username>admin</username> <password>19e36q29-1e09-42ce-af29-4f74563a7467</password> </server> </servers> </settings>
Deploy jar or artifact to nexus server
- Now create a maven project. Open
pom.xml
file, and add this content insideproject
tag.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- ...other --> <!-- deploy libs to nexus repository --> <distributionManagement> <repository> <id>nexus</id> <url>http://119.168.0.0:9081/repository/sadhan</url> <!--<name>Nexus Releases</name>--> </repository> <snapshotRepository> <id>nexus</id> <url>http://119.168.0.0:9081/repository/sadhan</url> <!--<name>Nexus Snapshot</name>--> </snapshotRepository> </distributionManagement> </project>
Now hit the following command to deploy jar to nexus repository.
mvn deploy mvn deploy -e mvn deploy -e release mvn deploy -DaltDeploymentRepository=nexus::default::http://119.168.0.0:9081/repository/sadhan
Use and download jar/artifact from nexus server
- Now pull the jar file from nexus repository.
Makes sure ~/.m2/setting.xml
file copied properly.
Now open pom.xml
file and add this upload dependency inside dependencies
tag.
<dependency> <groupId>com.revesoft</groupId> <artifactId>olm</artifactId> <version>0.0.1</version> </dependency>
Then add this below content inside project
tag.
<!--to use nexus repositories we need that --> <repositories> <repository> <id>nexus</id> <url>http://119.168.0.0:9081/repository/sadhan/</url> <!--<name>Nexus Releases</name>--> </repository> </repositories>
Using CLI, we can download the jar file from nexus repository.
mvn dependency:resolve -DremoteRepositories=nexus::default::http://119.168.0.0:9081/repository/sadhan
Note: Here id nexus is the same as in
~/.m2/settings.xml
file. so use same it to download the jar file.
Optional
Upload blob file to nexus repository.
curl -v --user 'admin:admin123' --upload-file ./test.png http://localhost:9081/repository/documentation/test.png
Congratulations
I hope we learn something exciting about Nexus. Thanks for time & passion. Feel free to ask me anything.
Say Hi to me on Twitter, Linkedin, and Medium where I keep on sharing interesting updates.
References
Top comments (0)