[java] 메이븐 아티팩트 란 무엇입니까?

인공물이란 무엇이며 왜 Maven에 필요합니까?



답변

아티팩트는 Maven 저장소에 배치되는 파일 (일반적으로 JAR)입니다.

Maven 빌드는 컴파일 된 JAR 및 “소스”JAR과 같은 하나 이상의 아티팩트를 생성합니다.

각 이슈에는 그룹 ID (일반적으로 com.example.foo와 같은 역 도메인 이름), 이슈 ID (이름 만) 및 버전 문자열이 있습니다. 세 사람이 함께 유물을 고유하게 식별합니다.

프로젝트의 종속성은 이슈로 지정됩니다.


답변

일반적인 소프트웨어 용어로, ” 아티팩트 “는 소프트웨어 관련 문서이든 실행 파일이든 소프트웨어 개발 프로세스에 의해 생성 된 것입니다.

메이븐 용어로 이슈가 받는다는 빌드의 결과 출력, 일반적이다 jar또는 war다른 실행 파일. maven의 아티팩트는 groupId, artifactId 및 version의 좌표 시스템으로 식별됩니다. Maven은 사용 groupId, artifactIdversion구축하는 데 필요한 의존성 (일반적으로 다른 jar 파일)를 식별하고 코드를 실행합니다.


답변

나는 이것이 고대의 실이라는 것을 알고 있지만 몇 가지 뉘앙스를 추가하고 싶었습니다.

Maven 아티팩트, 저장소 관리자 아티팩트 및 Maven이 있습니다 Artifact.

Maven 아티팩트는 다른 주석가 / 응답자들이 말한 것처럼 Maven 프로젝트를 빌드하여 분리되는 것입니다. 그건있을 수 .jar파일 또는 .war파일 또는 .zip파일 또는를 .dll, 또는 무엇을 가지고있다.

저장소 관리자 아티팩트는 저장소 관리자가 관리하는 것입니다. 리포지토리 관리자는 기본적으로 소프트웨어 실행 파일 및 라이브러리에 대한 고성능 이름 지정 서비스입니다. 저장소 관리자는 아티팩트의 출처를 신경 쓰지 않습니다 (아마도 Maven 빌드 또는 로컬 파일 또는 Ant 빌드 또는 수동 컴파일에서 비롯된 것일 수 있습니다).

Maven Artifact은 저장소 관리자가 저장소 관리자 아티팩트로 역 참조하는 “이름”의 종류를 나타내는 Java 클래스입니다. 이런 의미에서 사용되는 때,이 Artifact같은 부분으로 단지 영광 이름 groupId, artifactId, version, scope, classifier등.

모두 합치려면 :

  • Maven 프로젝트는 아마도 Artifact<dependency>요소 에 따라 여러 가지에 의존 할 것입니다 .
  • Maven은 저장소 관리자와 상호 작용하여 저장소 관리자에게 Artifact내부 파일에 해당하는 저장소 관리자 아티팩트를 보내도록 지시함으로써 파일을 파일로 분석합니다 Artifact.
  • 마지막으로 Maven은 해결 후 프로젝트를 빌드하고 Maven 아티팩트를 생성합니다. 원하는 도구를 사용하여 저장소 관리자 아티팩트 요청하면 다른 사람들 이 저장소 관리자에게 요청할 때 찾을 수있는 충분한 조정 정보와 함께 저장소 관리자에게이를 보내서 저장소 관리자 아티팩트를 “이것으로 전환”하도록 선택할 수 있습니다 .

희망이 도움이됩니다.


답변

Maven은 프로젝트에서 빌드를 구성합니다.

artifact받는다는에서은 Maven 프로젝트에 의해 생성 된 자원이다. 각 maven 프로젝트는 정확히 하나 artifact와 같은 것을 가질 수 있습니다
. 프로젝트의 구성 파일 은 아티팩트 빌드 방법, 단위 테스트 실행 방법 jar, war, ear등을 설명합니다. 일반적으로 maven을 사용한 소프트웨어 프로젝트 빌드는 아티팩트를 빌드하는 많은 maven 프로젝트 (예 : jar)로 구성됩니다. )는 제품을 구성합니다.
예 :
"pom.xml"

Root-Project   // produces no artifact, simply triggers the build of the other projects
  App-Project  // The application, that uses the libraries
  Lib1-Project // A project that creates a library (jar)
  Lib2-Project // Another library
  Doc-Project  // A project that generates the user documentation from some resources

Maven 아티팩트는 Java 자원으로 제한되지 않습니다. 필요한 리소스를 생성 할 수 있습니다. 예 : 문서, 프로젝트 사이트, Zip 보관소, 기본 라이브러리 등

각 maven 프로젝트에는 고유 식별자로 구성 [groupId, artifactId, version]됩니다. maven 프로젝트가 다른 프로젝트의 리소스를 필요로 할 때 pom.xml위에서 언급 한 식별자를 사용하여 종속성이 구성됩니다 . 그런 다음 Maven은 빌드가 트리거 될 때 종속성을 자동으로 해결합니다. 그런 다음 필요한 프로젝트의 아티팩트는 repository사용자의 집에있는 간단한 디렉토리 인 local 또는 사용자에 지정된 다른 (원격) 저장소에서로드 pom.xml됩니다.


답변

Q. Maven에서 아티팩트 란 무엇입니까?
ANS : ARTIFACT는 JAR (WAR 또는 EAR)이지만 다른 것일 수도 있습니다. 각 유물에는

  • com.your.package와 같은 그룹 ID
  • 이슈 ID (이름 만)
  • 버전 문자열.
    세 사람이 함께 유물을 고유하게 식별합니다.

Q. Maven에 왜 필요한가요?
Ans : Maven은 애플리케이션에 사용 가능하도록하는 데 사용됩니다.


답변

아티팩트는 JAR 또는 저장소에 저장하는 것입니다. Maven은 그것들을 꺼내어 코드를 작성합니다.


답변

maven을 위해 빌드 프로세스는 일련의 아티팩트로 배열됩니다. 유물에는 다음이 포함됩니다.

  1. Maven 자체를 구성하는 플러그인.
  2. 코드가 의존하는 의존성.
  3. 빌드에서 생성하는 것은 무엇이든 사용할 수 있습니다.

유물은 저장소에 있습니다.