Maven 에 직접 jar 라이브러리 추가하기!!! ( 외부 repository 사용이 안될때) + scope 정리

 

프록시 등등 여러가지 이유로

외부 레파지토리에서 필요한 디펜던시를 못가지고 오는 경우가 있다.

JDBC 관련된 드라이버들은 등록도 안되있고...

 

그런 경우,

직접 jar 파일 다운받아서 추가해야되는데..

이게 이상하게 인터넷에 하라는대로 해도 안되는 케이스가 많아서

직접 다 해보고 여기에 정리해본다.

 

알아서 필요한 방법을 잘 쓰길.

 

 

 

1. maven 이 정식버전이 설치되어 있는 케이스

가장 쉬운 케이스인데, 사용하고자 하는 라이브러리의 디펜던시를 pom.xml 파일에 추가한다.

<dependency> <groupId>group</groupId> <artifactId>artifact</artifactId> <version>2.1</version> </dependency>

 

필요한 jar 파일 다운받아서 위치를 기억한 뒤,

 

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

이러면, .m2  같은 로컬 레파지토리에 해당 디펜던시 폴더와 파일이 추가되어 maven dependency 에도 추가된다.

언제나 update maven project 를 해주길.

 

 

2. maven 설치 안되있고, eclipse 플러그인으로 사용시

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

이때도 위와 동일한 방법으로 pom.xml 에 추가한 뒤, maven 실행이 안되기때문에 eclipse  메뉴에서

 

file/import/maven/install or deploy an artifact to a maven repository

 

위 경로로 실행한다.

그리고 나서 해당 jar 파일 선택하고, pom 은 자동생성하게 놔두고,

밑에 group,artifact 들을 해당사항에 맞게 적어주고 finish 하면

1번 방법과 동일하게 local 레파지토리에 해당 라이브러리 디펜던시가 추가된다. 그러니 pom.xml 의 에러 ( missing ~ ) 가 사라지고 라이브러리를 사용할 수 있게 된다.

 

 

3. 위 2가지 방법이 아닌 경우에는, 강제로 프로젝트 안에 lib 폴더를 추가하거나 해서 사용하는 방법인데, 이론적으로는 되어야 하는데 필자의 경우 어쩔떈 되고, 어쩔때는 안되고,

어떤 피씨에서는 되고 또 어디선 안되는 현상이 자꾸 발생하다보니

짜증나서 안하게 되었다.....

{basedir}/lib 을 in-project 레파지토리로 추가해서 하거나, system scope 에 path 넣어서 쓰는건데,   되다 안되다 하거나... 실제로 build 할때는 포함안되는 현상이 있어서 이런 방법들은 안쓰기로 했다.

( 내가 잘 못해서 그런 것일 수도 있으니 잘되면 사용하셔도 됩니다~ )

 

* maven 디펜던시 추가시 scope 라는걸 정하는데

이거에 따라서 디펜던시가 다양한 방식으로 추가 된다.

위에 말한 system 의 경우 시스템패쓰를 따라가서 해당 라이브러리를 추가하지만, 막상 빌드할떄는 포함이 안되버린다(시스템에서 제공한다고 생각하는 듯)

기왕 말 나온김에 정리

 

* compile : 기본영역으로 아무것도 지정되지 않은 경우 사용됨. compile 의존관계에 있는 것은 프로젝트의 모든 클래스에서 사용가능함. 또한, 이와 같은 의존관계는 의존관계에 있는 프로젝트에 포함됨.
* provided : compile 과 매우 유사히지만, 실행시 의존관계를 제공하는 JDK나 컨테이너에 대해서 적용됨. 예를 들어, JEE에 대한 웹 어플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API관련 클래스들을 제공하기 때문에 provided 영역으로 의존관계가 세팅되어야 함. 이 영역은 컴파일과 테스트의 클래스패스 용으로 사용되며, 자동영역임.
* runtime : 의존관계가 컴파일시 필요하지 않지만, 실행시 필요함을 의미함. 실행시와 테스트 클래스패스에 속하지만, 컴파일 클래스패스에는 속하지 않음.
* test : 일반적인 어플리케이션 사용에 대해서는 의존관계가 필요없고, 테스트 컴파일과 실행 시점에만 사용됨.
* system : 명시적으로 해당 JAR를 포함하는 것이 제공되어야 한다는 것을 제외하고 provided와 유사함. artifact는 항상 사용가능하며 레파지토리에서 검색하지 않음.
* import (Maven 2.0.9 이후에서만 적용) : 이 영역은 <dependencyManagement>에서 pom의 의존관계에 대해서 사용됨. 지정된 POM이 해당 POM의 <dependencyManagement> 영역에 있는 의존관계로 대체됨을 의미함. 이것들이 대체되기 때문에 import 영역의 의존관계들은 실질적으로 의존에 대한 제약에 대해 관여하지 않음.

 

출처 : http://homo-ware.tistory.com/43

[출처] https://m.blog.naver.com/kimyoon21/220260631016

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
35 [EMF] EMF Tutorial EMF 튜터리얼 file 졸리운_곰 2023.08.23 283
34 Eclipse RAP Tutorial for Beginners - Workbench Application (OLD) file 졸리운_곰 2021.01.30 323
33 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.27 253
32 [Eclipse] GEF entry series (10, an implementation of the form) file 졸리운_곰 2019.11.25 212
31 GEF Programmer Guide 번역 졸리운_곰 2019.11.25 227
30 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.20 224
29 RCP 에디터 정리 졸리운_곰 2019.11.20 333
28 다른 그림과 관련하여 GEF 편집기 레이아웃에서 그림의 위치 제한 조건을 동적으로 계산 Dynamically calculating the position constraints for a figure in a GEF editor layout in relation to another figure file 졸리운_곰 2019.11.20 277
27 RCP 등에서 .mf 파일로 다른 프로젝트 익스포트 포함시 라이브러리(메소드)를 찾지 못할 때, Eclipse RCP - cant resolve importing libraries in final build file 졸리운_곰 2019.10.15 410
26 ESE2006-EclipseModelingSymposium15_GMF.pdf file 졸리운_곰 2019.09.21 302
25 GMF_Creation_Review.pdf file 졸리운_곰 2019.09.21 366
24 Eclipse EMF and GMF Tutorial file 졸리운_곰 2019.09.21 222
23 GMF Tutorial/ko file 졸리운_곰 2019.09.20 347
22 Model Driven Architecture approach to domain of graphical editors file 졸리운_곰 2019.09.20 268
21 Single_Sourcing_RAP_RCP_en.pdf file 졸리운_곰 2019.05.15 311
20 Rich client platform 설명 및 배우기 참고 졸리운_곰 2019.05.15 309
19 Rich Ajax Platform, Part 1: 소개 file 졸리운_곰 2019.05.15 320
18 또 하나의 크로스 플랫폼: Eclipse RAP file 졸리운_곰 2019.05.15 319
17 Eclipse 4 RCP 튜토리얼(완료) file 졸리운_곰 2019.05.14 977
16 Updating UI in Eclipse RCP 졸리운_곰 2015.11.07 408
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED