시그마 삽질==six 시그마

Maven에 jar 삽입 및 배포시 인식 본문

프로그래밍/Setting Ex

Maven에 jar 삽입 및 배포시 인식

Ethan Matthew Hunt 2020. 3. 18. 23:38

 

항상 센트럴과 넥서스만 dependency하여 사용하다가 이번에 custom jar를 넣어서 배포할 일이 생겼다.

 

자바 빌드 패스에 잡아줘을때는 로컬에서는 잘 돌아가던 녀석이

 

(jar는 WEB-INF/lib에 넣어줬다. 넣은 jar를 maven 빌드패스에 인식시키는건 요기를 참조)

 

개발서버등에 배포할때는 jar 빌드를 못하는 것이었다.

 

그때는 

 

방법1

 

<dependency>
    <groupId>anything</groupId> <!-- Doesn't matter -->
    <artifactId>youwant</artifactId> <!-- Doesn't matter -->
    <version>0.1</version> <!-- Doesn't matter -->
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jar_name.jar</systemPath>
</dependency>

systemPath에 저렇게 넣어주면 인식할 수 있다.

 

이 방법은 scope이 system 이라 명시적으로 jar를 프로젝트에 넣어줘야한다.

(그래서 난 WEB-INF/lib 폴더에 넣어줬다.)

${project.basedir} 설명은 요기와 요기 참조

 

scope 설명은 요기 참조

 

 

 

maven.apache.org

 

maven.apache.org

 

maven.apache.org

 

상단에 있는 방법도 좋지만 deprecated되었기에 

 

 

두번째 방법!!

 

프로젝트 루트에 /lib 폴더를 만들어준후...(솔직히 위치는 어디든 상관없다. 하단에 그 위치만 잘 넣어주면됨)

 

 

로컬 repository 만들기

<dependency>   
    <groupId>something</groupId> <!-- Doesn't matter -->   
    <artifactId>my-custom</artifactId> <!-- Doesn't matter -->   
    <version>1.0.0</version> <!-- Doesn't matter -->
</dependency>


<repository>   
    <id>myrepo</id>   <!-- Doesn't matter -->   
    <name>local-repo</name>   <!-- Doesn't matter -->   
    <url>file://${project.basedir}/lib</url> 
</repository>

 


이 때 ${project.basedir}/lib  속의 폴더구조는 maven 디렉토리 구조에 의거

groupId/artifactId/version/jar이름으로 맞춰야한다.

최종적으로는 이렇게 적용이된다

${project.basedir}/lib/something/my-custom/1.0.0/my-custom-1.0.0.jar

 

(센트럴이나 넥서스를 사용했다면 자동으로 들어갔겠지만 로컬리포이기에 동일하게 jar를 넣어준다) 

 

 

 

 

 

 

참조: https://stackoverflow.com/questions/36176415/maven-add-external-jar-folder-to-classpath

 

Maven: add external jar folder to classpath

I've simple Eclipse Web Project based on Adobe framework. Now I have to upgrade my project to a new version of framework and I wish to use Maven to manage dependencies, packaging, ecc. The problem...

stackoverflow.com

참조(최하단): https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

 

Maven – Introduction to the Dependency Mechanism

Introduction to the Dependency Mechanism Dependency management is a core feature of Maven. Managing dependencies for a single project is easy. Managing dependencies for multi-module projects and applications that consist of hundreds of modules is possible.

maven.apache.org

 

 

 

Comments