Maven으로 build할때 별다른 설정없이 build하면 내가 개발한 프로그램에서 사용하는 jar파일이 같이 묶이지 않습니다.
(한마디로 내가 mysql DB에 접속하는 프로그램을 짜서 빌드하면 mysql-connector-java-5.1.14-bin.jar 파일이 같이 묶이지 않아서 실행이 안됌)
그렇기 때문에 java 명령어를 실행할 때 java.lang.NoClassDefFoundError 에러가 발생합니다.
자바를 실행할때 jar파일을 다운받아서 cp(classpath) 옵션으로 jar경로를 다 적어주면 해결이 됩니다.
(java -cp /test/lib/mysql-connector-java-5.1.14-bin.jar:/test/lib/Test-0.0.1-SNAPSHOT.jar kr.co.test.MainApplication)
하지만 의존하는 jar가 많다면 명령문이 길어지게 됩니다.
그래서 다른 방법이 있는데 그 방법은 프로그램에 jar파일을 shade(음영) 하는 방법입니다.
한마디로 Maven Build 할때 내가 짠 소스와 사용했던 jar까지 한꺼번에 묶는 방식 입니다.
(이러한 형식을 "uber-jar"라 부릅니다.) => 꼭 Maven에 국한된 용어는 아닙니다.
해당 방법은 POM에 아래소스를 추가하면 됩니다. (build 태그 부분)
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ... </project>
아래 이미지를 참고하여 pom.xml 에 입력하세요.
org.apache.ibatis.type.TypeException: Could not set parameters for mapping (0) | 2017.03.23 |
---|---|
Spring excel download xlsx (엑셀 2007 이후버전) (15) | 2017.01.19 |
Spring 파일 업로드 저장 (0) | 2016.09.20 |
Spring 파일 디렉토리 경로 다운로드 (9) | 2016.09.20 |
[mybatis] foreach를 이용한 다중 insert (0) | 2016.08.31 |
댓글 영역