ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [error] build 오류
    T-note 2024. 2. 10. 15:03
    728x90

    현재 상황

    현재 unit test 진행시에는 통과가 뜨는데, 빌드를 진행하면 test code들이 실패가 됩니다.

    테스트 코드 실행시 통과

     

    하지만 내가 만난 에러 상황

    TNoteApplicationTests > contextLoads() FAILED
        java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180
            Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802
                Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802
                    Caused by: org.springframework.boot.context.properties.ConfigurationPropertiesBindException at ConfigurationPropertiesBindingPostProcessor.java:99
                        Caused by: org.springframework.boot.context.properties.bind.BindException at Binder.java:392
                            Caused by: com.ulisesbocchio.jasyptspringboot.exception.DecryptionException at DefaultPropertyResolver.java:46
                                Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException at StandardPBEByteEncryptor.java:1169
    
    OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

    에러 문구

    이런식으로 빌드시에 문제가 생겼다.

     

    오류 원인

    [ 해결중 ] 지금까지 봤을 때는 프로젝트에 jasypt를 적용한거 때문같다. 그래서 각각 테스트에도 그렇고 빌드시에도 jasypt를 적용해보고 있는데 아직 해결이 되지 않았다. [ 이렇게 생각한 이유가 에러 코드 마지막에 jasypt 관련해서 뱉고 있기 때문! ]

     

    [ 해결완료 ] 정확한 이유는 모르겠지만, 추정상 스프링 부트의 버전(3.2.0)에 따른 gradle 파일 내부 코드 때문인거 같다.

    gradle 파일아래에 jasypt 때문에 작성한 코드가 문제였던거 같다

     

    해결 방안

    gradle 에 있던 코드 삭제 

    tasks.named('test') {
        useJUnitPlatform()
        systemProperty 'jasypt.encryptor.password', findProperty("jasypt.encryptor.password")
    }

    위와 같은 코드가 있었는데, 다른 사람들 프로젝트의 gradle을 보면 해당 부분이 없어서 시도해보았는데, 성공적으로 빌드가 되었다

     

    결과

    ec2에서 제공하는 퍼블릭 IP로 접근을 성공한 모습입니다!

Designed by Tistory.