인공물이란 무엇이며 왜 Maven에 필요합니까?
maven-metadata.xml
과 이라는 파일이 있어야합니다 <artifactId>-<version>.pom
. 이 두 파일 모두 문서화되지 않은 스키마와 의미를 가지고 있습니다.
인공물이란 무엇이며 왜 Maven에 필요합니까?
maven-metadata.xml
과 이라는 파일이 있어야합니다 <artifactId>-<version>.pom
. 이 두 파일 모두 문서화되지 않은 스키마와 의미를 가지고 있습니다.
답변:
아티팩트는 Maven 저장소에 배치되는 파일 (일반적으로 JAR)입니다.
Maven 빌드는 컴파일 된 JAR 및 "소스"JAR과 같은 하나 이상의 아티팩트를 생성합니다.
각 이슈에는 그룹 ID (일반적으로 com.example.foo와 같은 역 도메인 이름), 이슈 ID (이름 만) 및 버전 문자열이 있습니다. 세 사람이 함께 유물을 고유하게 식별합니다.
프로젝트의 종속성은 이슈로 지정됩니다.
일반적인 소프트웨어 용어로, " 아티팩트 "는 소프트웨어 관련 문서이든 실행 파일이든 소프트웨어 개발 프로세스에 의해 생성 된 것입니다.
메이븐 용어로 이슈가 받는다는 빌드의 결과 출력, 일반적이다 jar
또는 war
다른 실행 파일. maven의 아티팩트는 groupId, artifactId 및 version의 좌표 시스템으로 식별됩니다. Maven은 사용 groupId
, artifactId
및 version
구축하는 데 필요한 의존성 (일반적으로 다른 jar 파일)를 식별하고 코드를 실행합니다.
나는 이것이 고대의 실이라는 것을 알고 있지만 몇 가지 뉘앙스를 추가하고 싶었습니다.
Maven 아티팩트, 저장소 관리자 아티팩트 및 Maven이 있습니다 Artifact
.
Maven 아티팩트는 다른 주석가 / 응답자들이 말한 것처럼 Maven 프로젝트를 빌드하여 분리되는 것입니다. 그건있을 수 .jar
파일 또는 .war
파일 또는 .zip
파일 또는를 .dll
, 또는 무엇을 가지고있다.
저장소 관리자 아티팩트는 저장소 관리자가 관리하는 것입니다. 리포지토리 관리자는 기본적으로 소프트웨어 실행 파일 및 라이브러리에 대한 고성능 이름 지정 서비스입니다. 저장소 관리자는 아티팩트의 출처를 신경 쓰지 않습니다 (아마도 Maven 빌드 또는 로컬 파일 또는 Ant 빌드 또는 수동 컴파일에서 비롯된 것일 수 있습니다).
Maven Artifact
은 저장소 관리자가 저장소 관리자 아티팩트로 역 참조하는 "이름"의 종류를 나타내는 Java 클래스입니다. 이런 의미에서 사용되는 때,이 Artifact
같은 부분으로 단지 영광 이름 groupId
, artifactId
, version
, scope
, classifier
등.
모두 합치려면 :
Artifact
그 <dependency>
요소 에 따라 여러 가지에 의존 할 것입니다 .Artifact
내부 파일에 해당하는 저장소 관리자 아티팩트를 보내도록 지시함으로써 파일을 파일로 분석합니다 Artifact
.희망이 도움이됩니다.
mvn install
, 사람들이 그 항목에 넣을 것을 알아 내려고 노력했습니다. 따라서 항아리의 전체 이름은 무엇을 입력해야 -DartifactId=YOUR_ARTIFACT_ID
합니까? 버전이 .jar 인 전체 jar 파일 이름? 당신이 말하고있는 것 같지만 일부는 실제로 명시 적으로하는 데 도움이됩니다. 다른 답변은 이것에 가까워 지지만 나는 당신의 최선이라고 생각했습니다.
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)이지만 다른 것일 수도 있습니다. 각 유물에는
Q. Maven에 왜 필요한가요?
Ans : Maven은 애플리케이션에 사용 가능하도록하는 데 사용됩니다.
maven을 위해 빌드 프로세스는 일련의 아티팩트로 배열됩니다. 유물에는 다음이 포함됩니다.
유물은 저장소에 있습니다.