
본격 넥서스를 활용하는 방법에 대해 알려줄 것이다.
여기선 Spring boot, java를 이용해 간단한 예제로 구현할 예정이다.
먼저, 넥서스를 업로드해주는 스프링부트 프로젝트를 생성할 것이다.
여기서 주의할 점이 있다.
java 버전이 안맞거나 특정 종속성 버전이 안맞는 경우 라이브러리 다운로드를 못한다.
실무에서 넥서스에서 라이브러리를 다운로드하는 프로젝트는 java버전이 11이였고, 넥서스에 배포한 프로젝트는 java 21이였는데, 실제로 호환이 안되서 엄청 고생했다..
java 버전을 낮춰서 다시 배포하니 잘됐으니 개발할 때 참고하시길 바란다..
별도의 설정은 하지 않고 프로젝트를 생성해준다.
util이라는 패키지를 생성 후 AddUtils란 클래스를 만들어준다.
@Component
public class AddUtils {
public int addAll(int... nums){
return Arrays.stream(nums).sum();
}
}
그리고 해당 클래스가 잘 동작하는지 테스트코드를 작성해서 확인해본다. (생략 가능)
별도의 롬복은 설정해주지 않아서 sout으로 결과를 출력해본다.
@SpringBootTest
class AddUtilsTest {
@Autowired
AddUtils addUtils;
@Test
void addAll() {
System.out.println(addUtils.addAll(1,2,3,4,5));
}
}
이제 제일 중요한 gradle 세팅을 해줄 차례이다.
// build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
id 'maven-publish' // maven 배포를 위한 플러그인 적용
}
group = 'hello.example' // 프로젝트의 group id
version = '1.0.0' // 프로젝트의 version
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
withSourcesJar() // 소스 코드를 포함한 jar 파일 생성
}
repositories {
mavenCentral()
}
dependencies {
// nexus에 배포할 경우 종속성에 대한 버전 명시해야함
// 버전 명시 안하면 배포 실패
implementation 'org.springframework.boot:spring-boot-starter:3.3.1'
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.3.1'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.8.2'
}
tasks.named('test') {
useJUnitPlatform()
}
// maven 배포 설정
publishing {
publications {
maven(MavenPublication){
from components.java
groupId = group.toString()
artifactId = project.name
version = version
}
}
repositories { // 배포할 리포지토리 정보
maven {
url = uri('http://localhost:8081/repository/maven-releases')
allowInsecureProtocol = true
credentials{
username = project.property("nexusUsername")?:""
password = project.property("nexusPassword")?:""
}
}
}
}
각각의 설명은 주석으로 달았다.
이렇게 하고 Root 디렉토리에 gradle.properties 파일을 생성한 후, id, password를 분리해준다.
// gradle.properies
nexusUsername=admin
nexusPassword=admin
설정 후 터미널에 아래와 같이 명령어를 입력하면 넥서스에 배포가 가능하다.
./gradlew publish


성공적으로 배포가 완료됐다!
다음은 넥서스 리포지토리에서 다운로드 받는 방법을 알아보자