반응형

[Maven] maven-shade-plugin 의존관계설정

출처 : http://javacan.tistory.com/entry/mavenshadeplugin


[Desc]

만약에 [1]번 프로젝트에 내가 만든 [2]번 프로젝트가 lib(jar)형식으로 들어가서 사용 될때

내가만든 [2]프로젝트에는 httpclient 2를 사용하였고 [1]번프로젝트에는 httpclient4 를 사용했을 경우

라이브러리가 중복이되어 [2]번플젝에서 httpclient4 버젼을 사용하다가 에러가 발생할수가 있습니다.


이럴 경우 [2]번 플젝에서 jar로 빌드시에 중복안되고 독립적으로 httpclient2버젼을 사용할 수 있도록

패키지명을 변경을 한다고 생각하시면 됩니다.


org.apache.commons.httpclient 원래 패키지명을 custom.org.apache.commons.httpclient 이렇게 변경을해줌으로써

[2]번플젝에서는 httpclient2번을 사용할때 custom.org.apache.commons.httpclient 를 사용하도록 해줌으로써

[1]번플젝은 org.apache.commons.httpclient을 그대로 사용하고 [2]번플젝은

custom.org.apache.commons.httpclient 이걸 사용하도록 하는 것입니다.


[설정]


    org.apache.maven.plugins
    maven-shade-plugin
    3.1.0
    
	
		package
		
			shade
		
								    
			
										
				
			
			
			false
		
	
     
    
        ${project.build.directory}/${project.artifactId}-with-common-${project.version}.jar
        
        false
        true
        
			//포함설정
            
                commons-httpclient:commons-httpclient
                commons-logging:commons-logging
                commons-lang:commons-lang
            
			//제외설정
			
				log4j:log4j
			
        
        
			//패키지명이 아래와 같을때 변경할 패키지명
            
                org.apache.commons.logging
                madvirus.relocated.commons.logging
            
            
                org.apache.commons.httpclient
                madvirus.relocated.commons.httpclient
            
        
    







반응형

'Framework & ORM > Build Tools' 카테고리의 다른 글

[Maven, Gradle] ojdbc6 설정  (2) 2018.01.18
[Maven] profile 이용하기  (0) 2018.01.11
Maven, Gradle Nexus서버 설정  (0) 2018.01.11
블로그 이미지

pstree

pstree.. process...

,