Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CON-1774-MARKDOWN-Nexus-Java-Project #2117

Merged
merged 15 commits into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions subjects/java/Nexus/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Artifact Management System with Nexus

## Project Description
Welcome to the **Nexus** project! This hands-on project is designed to provide you with a comprehensive learning experience in utilizing Nexus by Sonatype as a central repository for storing, managing, and deploying software artifacts. Through a series of tasks and requirements, you'll explore various aspects of artifact management, version control, Docker integration, continuous integration, and security considerations.

## Project Requirements
In this project, You will have to be working with, at least, java 11 and a version of Maven that is compatible with it.

1. **Setup Nexus Repository Manager:**
- Obtain the most recent release of Nexus Repository Manager, and proceed to install and set it up on either a local or remote server. It is essential to configure Nexus to operate under a "nexus" user rather than the "root" user.
- Create repositories and set them up for different artifact types such as JARs, WARs, and Docker images.

2. **Sample Web Application:**
- Clone buy-02 project repository, configure the web application as Maven project.

3. **Artifact Publishing:**
- Configure Maven to publish the built artifacts to the appropriate repositories in Nexus.

4. **Dependency Management:**
- Utilize Nexus as a proxy for fetching external dependencies required for the web application.
- Configure the project to resolve dependencies from Nexus repositories.

5. **Versioning:**
- Implement versioning for the web application and its artifacts using Nexus capabilities.
- Demonstrate how to retrieve and manage different versions of the artifacts.

6. **Docker Integration:**
- Set up a Docker repository in Nexus and publish the Docker image to the repository.

7. **Continuous Integration (CI):**
- Configure the pipeline, in addition to builds and tests, add artifact publishing whenever changes are pushed to the repository.

8. **Documentation:**
- Create clear and detailed documentation that explains the project setup, configuration steps, and usage instructions.
- Include screenshots and examples to guide users through the artifact management process.

9. **Bonus: Nexus Security and Access Control:**
- Explore Nexus security features such as user authentication, role-based access control, and repository-level permissions.
- Configure security settings to restrict access to certain artifacts or repositories.

## Evaluation
Your project will be evaluated based on the completion of all required tasks. Refer to the provided evaluation audit document for the criteria and checklist used by the evaluator.

Enjoy your journey into the world of Nexus and artifact management!
57 changes: 57 additions & 0 deletions subjects/java/Nexus/audit/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#### Functional

##### Setup Nexus Repository Manager

###### Has the Nexus Repository Manager been successfully installed and configured on a local or remote server?

###### Is Nexus configured correctly to work under the specified user not 'root' user?

###### Are repositories set up for different artifact types such as JARs, WARs, and Docker images?

##### Development and Structure

###### Is there a simple web application developed using the Spring Boot framework?

###### Does the project utilize a proper Maven or Gradle project structure?

##### Artifact Publishing

###### Is the build tool (Maven or Gradle) properly configured to publish built artifacts (JARs/WARs) to the relevant repositories in Nexus?

##### Dependency Management

###### Is Nexus used as a proxy for fetching external dependencies required by the web application?

###### Is the project configured to resolve dependencies from Nexus repositories?

##### Versioning

###### Is versioning implemented for the web application and its artifacts using Nexus capabilities?

###### Are different versions of artifacts effectively retrieved and managed?

##### Docker Integration

###### Is there a Docker repository set up in Nexus, and is the Docker image published to the repository?

##### Continuous Integration (CI)

###### Does the pipeline automatically trigger builds, tests, and artifact publishing upon repository changes?

##### Documentation

###### Is clear and detailed documentation provided for project setup, configuration, and usage?

###### Does the documentation include relevant screenshots and examples?

#### Bonus: Nexus Security and Access Control

##### Security Exploration

###### Have Nexus security features like user authentication and role-based access control been explored?

###### Are repository-level permissions effectively configured?

##### Configuration

###### Are security settings configured to restrict access to specific artifacts or repositories in Nexus?
Loading