ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SpringBoot] 개발환경 구축
    프로그래밍 2020. 1. 14. 10:52
    반응형

    운영기, 개발기에서도 개발을 할수 있지만 리눅스 환경이고 IDE를 쓸게 vi밖에 없어서 로컬에서도 개발환경을 구축하기로 했다. 로컬은 서버와 직접 연결이 되지 않으므로 VDI에 개발기 접근 신청을 해서 git서버에 연결하였다.

    VDI 개발 환경 구성

    IDE + Build Tool : VSCode + Maven

    FrameWork : SpringBoot

    목표 : Maven으로 SpringBoot 코드를 jar 파일로 컴파일 하고 실행


    1. 개발서버의 소스를 VDI에 받음

    2. 서버의 Maven repository도 복사함(VDI 환경에선 외부 인터넷이 되지 않는다)

    3. 소스를 일부 고침(리눅스와 윈도우가 다를거라고 생각 - 경로관련)

    4. war 파일로 잘 만들어짐(mvn clean package)

    5. 근데 실행이 안됨 - 서버에서는 톰캣에서 띄우는데 VDI에서는 SpringBoot 내장 톰캣 사용해서 라고 생각

    6. 톰캣 사용하기 싫어서 검색 해보니 jar파일 만들면 된다고 해서 pom.xml 수정해서 war -> jar로 바꿈

    7. maven-jar-plugin을 새로 받아야 한다고 함

    8. 외부인터넷이 되는 로컬에서 repository를 새로 받아서 VDI로 옮김

    9. 되는 것 같은데 빌드하면서 resources 파일을 자꾸 target으로 옮기다가 에러가 남(근데 여러번 하면 또 됨)

    10. java -jar -Dsystem.type=local ~.jar로 실행하니 war 파일로 실행할 때와 같은 에러가 계속남

    11.  Aplication startup failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'approvalService' : Unsatisfied dependency expressed through field 'approvalMapper'

    뭔가 쿼리가 정의된 XML파일에서 resultType같은걸 읽을 수 없다. 정의되지 않았다. 라는 느낌의 에러가 남

    빌드할때 뭔가 순서가 잘못된것 같다고 느낌. 하지만 나는 바보기 때문에 아무것도 할 수 없었다..

    삽질의 연속

    12. 결국 이것 저것 해보다가 VSCode를 사용하고 있었으므로 vscode의 .vscode - launch.json에서 빌드 할때 인자값을 주는 것으로 해결함. 뭔가 해결이라고 하기보다는 어떻게든 되는 방법을 찾은 느낌이라 다음번에서 삽질 할 것 같다. 하지만 나는 해결사니깐 괜찮다. 

    결론 : VSCode에서 로컬에서 받은 라이브러리를 옮긴다음, .vscode/launch.json에 vmArgs를 -Dsystem.type=local로 주면 실행은 된다.

    PS) -Dsystem.type에 local로 준 이유는 내 properties 파일 명이 config-local.properties 였기 때문이고 운영에서 쓸 때는 config-opr.properties 였다.

    3일만에 되서 행복하다. 나는 역시 해결사

    반응형

    '프로그래밍' 카테고리의 다른 글

    [환경설정] 각 언어별 환경설정  (0) 2020.01.02
    [Python] 화면보호기 방지  (0) 2019.12.20
    [JAVA]1. 자바 설치  (0) 2017.03.10
    (C)미완성. 용사키우기  (0) 2017.02.22

    댓글

Designed by Tistory. Flag Counter