2013-05-17 3 views
1

내 프로젝트에는 최종 jar 파일에 통합되어야하는 몇 가지 클래스가 포함되어 있습니다. 나는 이것이 받는다는 항아리 플러그인 또는 받는다는 어셈블리를 통해 수행 할 수 있지만, 방법을 알아낼 수 없습니다 생각maven을 사용하여 기존 jar 파일을 "확장"

mvn compile && jar uf contribution.jar -C target/classes . 

: 같은

그래서 내 현재의 "워크 플로는"보인다.

+1

'mvn compile' 대신'mvn package'를 호출하기 만하면됩니다. – khmarbaise

+0

"contribution.jar"은 내 maven 프로젝트에서 만든 아티팩트가 아닙니다. 다른 소프트웨어 릴리스의 일부인 jar 파일 일뿐입니다. "mvn package"를 사용한다고해도 "jar uf ..."를 실행해야합니다.) – pagid

답변

2

간단한 - 당신의 pom.xml에 요소 <packaging>jar</packaging>을 추가하고 다음을 호출 :

mvn package 

자세한 내용은 Maven build lifecycle를 참조하십시오. 프로젝트에 Maven을 사용할 계획이라면 반드시 읽어야합니다.

편집 업데이트

덕분에, 나는 당신이 무슨 뜻인지 이해 알고있다. 이 이것을 할 수있는 더 좋은 방법이 될 수 있지만, 이것은 내가 무엇을 사용 할 수 있습니다

메이븐이 자동으로이 단지를 포함하면 일반적인 방법으로 종속성으로 추가하는 경우, 예 :

<dependencies> 
    ... 
    <dependency> 
     <groupId>some.group</groupId> 
     <artifactId>contribution</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
    ...   
</dependencies> 

질문 maven이 항아리를 찾을 수 있도록하는 방법은 무엇입니까? jar 파일이 Maven Global 저장소에 있으면 자동으로 찾게되므로 항상 먼저 확인하십시오. 그렇지 않다면 사용자 정의 jar를 저장하기 위해 자신의 저장소를 생성해야합니다. 이것은 그것을하는 가장 영리한 방법일지도 모르지만, 나가 그것을하는 방법이다. 이 값은 이 아니며 폴더에 저장된 캐시와 동일한 것은이 아닙니다.

로컬로 c : \ maven \ repo를 사용하려고한다고 가정 해 봅시다. 이 작업을 수행하려면 먼저 폴더가 다음 pom.xml에 다음 줄을 추가 존재 확인 :

<repositories> 
    <repository> 
     <id>my-repo</id> 
     <url>file://c:\maven\repo</url> 
    </repository> 
</repositories> 

다음, 수동이의 repo에 기여 항아리를 추가해야합니다. 이렇게하려면 mvn deploy:deploy-file 명령을 실행하고 적절한 값을 지정하십시오. 자세한 내용은 here을 참조하십시오.

원래 프로젝트를 빌드/컴파일/패키징 할 때 종속성이므로 패키지에 contribution.jar을 포함해야합니다.

도움이 되길 바랍니다.

+1

패키징 병을 추가하는 것은 필요하지 않으므로 기본값입니다. – khmarbaise

+0

질문은 jar 생성을 위해 maven을 사용하는 방법이 아니 었습니다. ( – pagid

+0

Thx - 편집 후에 실제로 대답은 내가 찾고있는 것이 었습니다. – pagid

관련 문제