
전 게시물에서 넥서스 리포지토리에 배포하는 방법에 대해 알아봤다.
이번에는 다운로드하는 방법에 대해 알아볼 것이다.
프로젝트 github 링크
이번에도 별도의 설정 없이 진행할 예정이지만, log를 확인하기위해 Lombok만 추가해준다.
여기서는 로직 구현보다 gradle 세팅을 먼저 한다.
이유는 nexus 리포지토리에서 다운 받아야 그 라이브러리를 활용할 수 있기 때문이다.
// gradle.properties
nexusUsername=admin
nexusPassword=admin // 현재 nexus password
루트 디렉토리에 gradle.properties 파일을 생성한 뒤, id, password를 입력해준다.
//build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
}
group = 'hello.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
maven {
url = uri('http://localhost:8081/repository/maven-releases')
allowInsecureProtocol = true //http를 사용하기 위해 추가
credentials{
username = project.property("nexusUsername")?:""
password = project.property("nexusPassword")?:""
}
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// 테스트에서 Lombok 사용을 위한 Lombok 라이브러리 추가
testImplementation 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'hello.example:nexus:1.0.0' // 배포했던 라이브러리 명시. group:artifact:version으로 구성
}
tasks.named('test') {
useJUnitPlatform()
}
이렇게 작성하고 gradle refresh를 해주면 외부 라이브러리에 넥서스에서 다운받은 소스코드가 보일 것이다!

넥서스에서 라이브러리를 다운로드 받았으니 테스트코드를 작성해준다.
참고사항
다운로드받은 라이브러리는 외부 라이브러리로 자동 ComponentScan 대상이 아니다.
프로젝트 내에서 사용하려면 별도의 config 설정을 해줘야 한다.
이부분도 위의 내용을 몰라서 실무에서 잠깐 막혔었는데 자동으로 Bean에 등록되지 않아서 별도로 Bean에 등록해줘야 한다.
@Slf4j
@SpringBootTest
@Import(AddUtils.class) // AddUtils.class 빈 등록
public class NexusTest {
@Autowired
AddUtils addUtils;
@Test
@DisplayName("AddUtils addAll 메소드가 정상 동작하는지 확인하는 테스트")
public void nexusTest(){
//given
//when
int result = addUtils.addAll(1, 2, 3, 4, 5);
//then
log.info("result={}", result);
assertThat(result).isEqualTo(15);
}
}
이렇게 하면 테스트가 정상적으로 수행되는 것을 확인할 수 있다.
이렇게 넥서스 리포지토리를 활용해 배포, 다운로드 하는 방법을 알아봤다.
실무에서 gradle 세팅하는 부분에서 애를 먹긴 했는데 설정을 한번 해주니까 별도로 신경 써야할 부분이 없어서 좋았다.
실무에서는 kotlin으로 로직을 구현했었는데 java 프로젝트와 잘 연동되는 것을 확인했고, 다른 기술들을 사용해 라이브러리를 만들 때 좋을 것 같았다.
일을 할수록 배우는 게 많은 것 같고, 배우는 것도 많지만 앞으로 배울 게 정말 많은 것 같다..
꾸준히 개발해서 기술스택을 넓히고, 필요한 부분에 적절한 기술스택을 사용해 효율적으로 개발하고 싶다!
--끝--