아직 원격 maven 저장소에 등록돼있지 않은 jar 파일을 pom.xml의 의존성에 추가하는
방법 중 하나로 jar 파일을 로컬 저장소에 설치하는 방법이 있다.

로컬 설치는 install:install-file goal을 이용하면 되는데 사용법은 다음과 같은 곳에서 확인할 수 있다.

http://maven.apache.org/plugins/maven-install-plugin/usage.html
http://maven.apache.org/general.html#importing-jars
http://maven.apache.org/pom.html#Dependencies

근데 웃긴건 mvn install:install-file -Dfile=your-artifact-1.0.jar  이런식으로 -Dfile 파라미터만 주면
마치 로컬에 jar가 설치될 것처럼 사이트에서 설명하고 있다는 것이다. pom 레퍼런스 사이트에는
file, artifact, group, version 파라미터를 주어서 설치하는 예제가 나와있기도 하다.

그러나 막상 실행해보면 이런식으로 에러가 떨어진다.(maven 2.0.9에서 테스트해봄)
[INFO] [install:install-file]
[INFO] ----------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ----------------------------------------------------------------
[INFO] Missing group, artifact, version, or packaging information

결국 artifact, group, version, packaging 옵션은 선택이 아니라 필수라는 걸 알게된다. 이제 아래처럼 packaging, file, groupId, artifactId, version 옵션을 필수로 입력해야 제대로 설치된다.
mvn install:install-file -Dpackaging=jar -Dfile=non-maven-proj.jar -DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1.x -DgeneratePom=true

그리고 기왕이면 generatePom=true로 설정하여 m2eclipse 플러그인에서 설치된 jar 파일이 검색이 되도록 pom 파일을 함께 생성하는 것이 좋다.(pom 파일이 없으면 m2eclipse에서는 검색이 안된다)
Posted by 에코지오
,