[java] Maven에서 종속성 추가

가지고있는 jar 파일을 어떻게 가져 와서 maven 2의 종속성 시스템에 추가합니까? 나는이 의존성을 유지하고 내 코드는 컴파일 할 수 있도록 클래스 경로 에이 jar이 필요합니다.



답변

두 단계로이 작업을 수행해야합니다.

1. JAR에 groupId, artifactId 및 version을 제공하고이를 저장소에 추가하십시오.

내부 저장소가없고 JAR을 로컬 저장소에 추가하려는 경우 임의의 groupId / artifactId를 사용하여 다음과 같이 JAR을 설치할 수 있습니다.

mvn install:install-file -DgroupId=com.stackoverflow... -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile

내부 리포지토리가있는 경우이를 배포하여 조직의 다른 개발자가 사용할 수 있도록하려는 경우도 있습니다. 저장소의 웹 기반 인터페이스를 사용하여 아티팩트를 추가하지만을 사용하여 동일한 작업을 수행 할 수 있어야합니다 mvn deploy:deploy-file ....

2.이 JAR을 참조하도록 종속 프로젝트를 업데이트하십시오.

그런 다음 요소에 다음을 추가하여 JAR을 사용하는 프로젝트의 pom.xml에서 종속성을 업데이트하십시오.

<dependencies>
    ...
    <dependency>
        <groupId>com.stackoverflow...</groupId>
        <artifactId>artifactId...</artifactId>
        <version>1.0</version>
    </dependency>
    ...
</dependencies>


답변

maven 저장소에없는 종속성을 지정할 수도 있습니다. 팀의 중앙 Maven 저장소가 없거나 CI 서버 가있는 경우 유용 할 수 있습니다.

    <dependency>
        <groupId>com.stackoverflow</groupId>
        <artifactId>commons-utils</artifactId>
        <version>1.3</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/commons-utils.jar</systemPath>
    </dependency>


답변

실제로, 이것을 조사 할 때, 나는이 모든 대답이 잘못되었다고 생각합니다. 에 대한 이해 수준이 귀하의 질문에 오도되었습니다 maven. 그리고 나는 방금 소개 되었기 때문에 우리에게 말합니다 maven.

에서 Eclipsejar 파일을 프로젝트에 추가하려면 일반적으로 jar 파일을 수동으로 다운로드 한 다음 lib 디렉토리에 놓으십시오 . maven을 사용하면 이런 식으로하지 않습니다. 당신이하는 일은 다음과 같습니다.

  • mvnrepository로 이동
  • 추가하려는 라이브러리를 검색하십시오.
  • 복사 dependency문을로pom.xml
  • 통해 재건 mvn

이제 의존성 목록과 함께 maven연결 및 다운로드하고 jar, jar있을 수 있는 추가 의존성을 자동으로 해결합니다 . 따라서 jar공통 로깅도 필요한 경우 다운로드됩니다.


답변

나는 이것을 할 것이다 :

  1. pom에서 원하는대로 종속성을 추가하십시오.

    <dependency>
            <groupId>com.stackoverflow...</groupId>
            <artifactId>artifactId...</artifactId>
            <version>1.0</version>
    </dependency>

  2. 실행 mvn install하면 jar를 다운로드하려고 시도하고 실패합니다. 이 과정에서 오류 메시지와 함께 jar를 설치하는 완전한 명령을 제공합니다. 해당 명령을 복사하여 실행하십시오! 쉽게 허?!


답변

POM을 업데이트하는 방법을 묻는 것이 아니라 “잘 알려진 저장소”로 종속성을 푸시하는 방법을 묻는다고 가정하겠습니다.

그렇다면, 다음 당신이 읽고 싶은 것입니다.

그리고 내부 리포지토리 서버를 설정하려는 사람은 여기를보십시오 (Maven 2 사용의 문제 중 절반은 문서를 찾는 것입니다)


답변