본문 바로가기

Maven

(7)
테스트 코드를 이용해 인코딩 문제 확인 앞서 pom.xml 에 인코딩 정보를 설정하고, Ubuntu 의 환경변수를 설정해 Locale, Encoding을 변경하는 작업을 했었다. 빌드할 때, 인코딩 문제가 발생해 특정결과가 나오지 않아서 ERROR가 발생하게 할 수 있는 방법은 없었을까? 테스트 케이스를 작성해 Guillimet 기호가 원래 역할을 하고있는지 확인하면 되지 않았을까? xtend-maven-plugin Xtend 로 작성한 파일을 빌드한다. 인코딩 설정에 따라 빌드 결과물이 다르다. HelloTemplate.xtend name 으로 Junha를 받으면 "Hello Junha" 를 반환하도록 작성한 코드이다. MS949 Xtend Expression 을 제대로 이해하지 못해 "Hello «name»" 전체를 그대로 문자열로 처리했..
Docker Ubuntu Locale 설정으로 Maven Default Encoding 변경하기 이전 포스팅(https://junha.tistory.com/40)에서 Maven 의 pom.xml 을 수정해 Encoding을 UTF-8을 사용하도록 설정했었다. 이번 포스팅에서는 Platform Encoding 을 설정해 Maven Default Encoding 을 UTF-8으로 설정하는 방법을 알아본다. Ubuntu Docker Image Locale 정보 Docker Ubuntu 이미지에서 사용할 수 있는 Locale 은 POSIX(default), C, C.UTF-8 이다. 대부분 인코딩을 UTF-8으로 사용한다. Docker Hub의 Ubuntu 공식 이미지에 첨부된 설명에 따르면, C.UTF-8으로 충분하다고 나와있다. LC_ALL 환경변수에서 C.UTF-8 로케일 사용 도커를 실행할 때, L..
Maven의 Default Encoding 정보 11월 제품 빌드를 하고나서, 제품의 일부 기능이 제대로 되지 않는 것을 확인했다. 제품 코드 중에는 Guillemet(«, ») 기호를 사용하는 코드가 있는데, 기호가 "占쏙옙" 으로 표현되었다. 문제의 원인은 단순했다. 인코딩 정보를 UTF-8 로 설정하지 않아서 Guillemet기호가 "占쏙옙" 으로 나온 것이다. "Xtend User Guide" 에서 Guillemet 기호를 사용하려면 인코딩을 UTF-8 으로 설정하도록 나와있다. 9월 배포 버전에서는 발생하지 않은 문제였는데, 11월 배포 버전에서 문제가 발생한 것이다. pom.xml 에서 따로 인코딩을 설정하지 않은 상태였지만, '알아서 잘' 빌드되었었다. 이런저런 변경점을 알아본 결과, Jenkins 서버를 새로 구축했고 11월 릴리즈 제품..
의존하는 라이브러리를 포함해 jar를 만드는 방법 0. 들어가며 실행가능한 JAR(executable-jar) 를 만들어 배포해야 하는 업무를 맡았다. pom.xml 에 의존하는 라이브러리를 추가하고, 외부 업체에서 구매한 jar 파일을 포함해 빌드했다. ClassNotFoundException이 발생했다. 이해가 되지 않았다. 이전 포스팅에서 작성한대로 maven-jar-plugin 도 제대로 설정했고, 추가한 라이브러리를 호출하기전에 main() 메소드도 제대로 실행되는 것을 확인했다. 빌드과정에 무엇이 잘못되었는지 확인하기 위해 Intellij IDEA에서 제공하는 방법으로 빌드해봤다. Intellij IDEA로 빌드한 jar파일은 10MB를 족히 넘겼지만, 내가 설정한 maven 으로 빌드한 jar파일은 겨우 60KB 밖에 되지 않았다. 파일을 ..
Launch4j 사용 방법 실습환경 - Windows 10 Pro - Intellij IDEA - Open JDK 8 - Apache Maven 3.8.1 0. 목표 이전 포스팅에서 생성한 jar 파일을 Windows 에서 실행가능한 exe 파일로 변환할 수 있다. 1. Launch4j 아래 URL의 Download 탭에서 Launch4j 다운로드 받는다. - http://launch4j.sourceforge.net/ Launch4j - Cross-platform Java executable wrapper Cross-platform Java executable wrapper Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in ..
Maven maven-jar-plugin 실습 환경 - macOS (11.2.1) - Visual Studio Code - Open JDK 11 - Apache Maven 3.8.1 목표 - maven-jar-plugin을 이용해 jar (Java ARchive file)을 생성할 수 있다. 1. maven-jar-plugin 추가 지난 포스팅에서 사용할 실습환경을 그대로 사용한다. ... {compile} {exec:java} org.apache.maven.plugins maven-jar-plugin 3.2.0 위와같이 maven-jar-plugin을 추가한다. 이 상태에서 mvn package 명령을 실행하면 "target" 하위에 demo-1.0-SNAPSHOT.jar 파일이 생성된다. 그러나, 생성된 jar 파일을 실행하려하면, 실행되지..
Maven Compile, 실행 실습 환경 - macOS (11.2.1) - Visual Studio Code - Open JDK 11 - Apache Maven 3.8.1 0. 목표 Maven Project를 생성, 컴파일, 실행할 수 있다. 1. Maven Project 생성 Visual Studio Code 에서 Command Palette (fn + F1) 을 열어 Maven Project를 생성한다. archetype 설정 archetype은 Maven에서 제공하는 프로젝트 템플릿으로, 만들고자 하는 프로젝트 타입의 모범사례를 제공한다. maven-archetype-quickstart, version은 1.4 를 선택한다. groupId 설정 com.example 로 설정한다. artifactId - demo 로 설정한다. 2..