2011-02-07 3 views
5

프로젝트에 추가해야하는 클래스가 인 이 수신되었습니다.컴파일 된 java 클래스를 Maven 프로젝트에 추가

내가 생각할 수있는 한 가지 해결책은이 파일들로 jar 파일을 만들고이를 수동으로 저장소에 업로드하는 것입니다. 분명히 이것은 작동 할 것이다. 그러나 좀 더 우아한 해결책이 있는지 궁금합니다. 프로젝트 구조 아래 어떻게 든 배치 할 수 있습니까? 따라서 파일은 소스 컨트롤에 체크인되고 버전 등을 유지하는 것이 더 쉬울 것입니다.

+1

처음에는 패키지되지 않은 컴파일 된 클래스를 배포하는 것에 대해 아무 것도 우아하지 않습니다. –

+0

Boris가 암시 하듯이 소스 제어 저장소에 바이너리 클래스 파일을 저장하는 것은 좋지 않습니다. – crowne

+0

@Sean : 나는 동의한다. 그러나 이것은 주어진 상황이다. 나에게는 아주 새로운 것이지만 나는 인정해야한다. 그러나 현재 나는 그것에 대해 할 수있는 일이 없다. – Tarlog

답변

8

여기 보리스 '대답에 의견에 따라 내 접근 방식 (자신이 같은 어제를 사용할 필요하지만 찾은 후 내가 사용했던 대답에 링크를 찾을 수 없습니다) : 프로젝트 디렉토리에서

을, repo이라는 폴더를 만듭니다. 폴더 기반 Maven 저장소로 사용합니다. 다음 명령을 사용하여 파일 저장소에

<repositories> 
    <repository> 
     <id>file.repo</id> 
     <url>file://${project.basedir}/repo</url> 
    </repository> 
</repositories> 

패키지 항아리로 수업하고이를 배포 :

프로젝트 pom.xml에 다음 파일 저장소를 추가

mvn deploy:deploy-file 
-Durl=file:///absolute/path/to/your-project/repo \ 
-DrepositoryId=file.repo \ 
-Dfile=path-to-your.jar \ 
-DgroupId=some.external.project.group \ 
-DartifactId=the-artifact-name \ 
-Dversion=1.0 \ 
-Dpackaging=jar; 

을이 이어 위에서 전달한 groupId, artifactId 및 version 값을 사용하여 프로젝트의 jar 파일에 대한 정상적인 종속성을 추가 할 수 있습니다. 그런 다음 SVN에 repo 폴더를 추가하고 변경 내용을 pom.xml에 적용 할 수 있습니다. 프로젝트를 체크 아웃하는 모든 개발자는 아무런 노력없이 동일한 종속성을 사용할 수 있습니다.

2

첫 번째 아이디어는 제어 할 권한이없는 바이너리를 체크인하는 것이 좋습니다. 따라서 바이너리를 항아리에 묶어서 버전을 만들고 저장소에 배포하십시오.

+5

그리고 저장소를 공유하지 않는 다른 사람들과 함께 작업하면서 SCM에 종속성을 추가하려는 경우 프로젝트 루트에서 파일 저장소를 만들고 해당 패키지 종속성을 배포합니다 프로젝트 POM의 파일 저장소를 참조하고 저장소를 개정 제어에 추가하십시오. – Tim

+0

@Tim 귀하의 의견은 추가 답변이 될만한 가치가 있습니다. –

+0

글쎄, 나는 너에게 완전히 동의 할 수 없다. 소스 컨트롤에서 나는 무슨 일이 일어나고 있는지 더 잘 제어 할 수 있습니다. – Tarlog

관련 문제