maven dependency integration with eclipse
이 자습서에서는 Maven과 Eclipse 및 TestNG의 통합, Maven 종속성 범위 및 Maven 배포 자동화에 대해 자세히 설명합니다.
이전 자습서에서 Gradle과 Maven 및 Maven 플러그인 간의 비교에 대해 논의했습니다. 이 가이드에서는 Maven을 다른 도구, Maven 종속성 및 Maven 배포와 통합하는 방법을 설명합니다.
웹 애플리케이션 용 보안 테스트 도구
시작하자!
=> 독점 Maven 교육 자습서 시리즈를 보려면 여기를 방문하십시오.
학습 내용 :
Maven과 Eclipse의 통합
Maven을 Eclipse와 통합하는 방법은 이미 이에 대해 심도있게 논의되었습니다. 페이지
명령 프롬프트에서 Maven 프로젝트를 빌드하고 해당 프로젝트를 Eclipse로 가져와야하는 특정 시나리오에서 다음 단계가 실행됩니다.
#1) Maven 프로젝트의 pom 파일 위치로 이동합니다. 아래 명령을 실행하십시오.
mvn eclipse : eclipse
# 2) .classpath 과 .계획 Maven 프로젝트의 위치에 생성됩니다.
Maven 플러그인이 이미 Eclipse에 제공되었는지 확인하십시오. Windows => 환경 설정 , Maven이 거기에 있어야합니다. 모든 현재 Eclipse 버전에는 기본적으로 Maven 플러그인이 있으며없는 경우 다음에서 가져올 수 있습니다. 여기 .
#삼) 이제 Maven과 Eclipse가 함께 작동하도록하려면 파일에서 Maven 프로젝트를 가져옵니다. 그런 다음 기존 Maven 프로젝트.
# 4) 프로젝트 위치 찾아보기 그리고 진행하십시오.
위에 묘사 된 이미지는 Eclipse로 가져온 Maven 프로젝트를 보여줍니다.
Maven과 TestNG의 통합
Maven을 TestNG와 통합하는 방법은 아래 페이지에서 자세히 논의되었습니다.
=> Maven Surefire 플러그인을 사용하여 Maven과 TestNg 통합
프로젝트에서 Maven을 TestNG와 통합했지만 프로젝트에 두 개 이상의 Testng xml 파일이있는 상황이있을 수 있습니다. 예를 들면 전체 회귀 스위트 기능은 하나의 testng.xml에 설명되어 있고 온 전성 테스트 케이스는 다른 testng.xml 파일에 설명되어 있습니다.
이와 같은 상황에서 우리는 프로필 Maven의 개념. pom 파일에서 프로필을 정의해야합니다. 각각은 태그의 일부이며 관련이 있습니다.
프로필 코드 조각이있는 pom.xml 파일은 다음과 같습니다.
Regression org.apache.maven.plugins maven-surefire-plugin 2.20.1 testngRegression.xml Sanity org.apache.maven.plugins maven-surefire-plugin 2.20.1 testngSanity.xml
위에 설명 된 두 개의 프로필이 있으며 각 프로필에는 연결된 ID가 있습니다. 예를 들면 회귀 과 제정신 또한 suiteXmlFiles 아래에서 id ()에 해당하는 Testng xml 파일의 이름을 정의했습니다. testngRegression.xml 과 testngSanity.xml ).
Windows 10을위한 최고의 성능 소프트웨어
따라서 여기에 두 개의 프로필이 있으며 단일 pom 파일의 도움으로 각 Testng 파일을 제어 할 수 있습니다.
이제 명령 프롬프트에서 직접 각 Testng 파일에 대한 테스트 케이스를 트리거하려면 프로젝트 폴더로 이동하여 다음 명령을 실행해야합니다.
mvn test –PRegression
이것이 실행되면 Maven은 id Regression과 해당하는 프로필을 검색합니다. testngRegression.xml 파일. 따라서 거기에 관련된 테스트 만 실행됩니다.
마찬가지로, ID Sanity가있는 프로필의 경우 명령은 다음과 같습니다.
mvn test –PSanity
여기 testngSanity.xml 파일은 실행할 테스트 케이스를 결정하는 데 사용됩니다. 따라서 특정 테스트 케이스 세트를 트리거하기 위해 pom에서 TestNG 파일 이름을 수정할 필요가 없으며, 별도의 TestNG 파일을 유지하여 쉽게 얻을 수 있습니다.
pom 파일에서 이러한 파일을 매핑하고 명령 프롬프트에서 Maven의 프로필을 사용하여 마지막으로 실행할 수 있습니다.
Maven 종속성 범위
Maven에는 아래와 같이 총 6 개의 범위가 있습니다.
- 제공
- 테스트
- 체계
- 수입
- 엮다
- 실행 시간
# 1) 런타임 범위
Maven 종속성에는 런타임으로 범위가 있으며 빌드 목적으로 사용되지 않습니다. 프로젝트 실행 및 테스트를위한 클래스 경로로 구성됩니다. 아래 코드 조각은 런타임 범위 종속성을 보여줍니다.
com.softwaretesting MavenJava 2.3 runtime
# 2) 시스템 범위
시스템으로서 범위가있는 Maven 종속성은 제공된 범위와 유사합니다. 시스템 종속성은 원격 저장소에서 다운로드 할 수 없으며 일반적으로 프로젝트의 디렉토리에 있습니다. 아래 코드 조각은 시스템 범위 종속성을 보여줍니다.
com.software MavenJava1 system 3.0 ${dir}warWEB-INFlibdep.jar
# 3) 제공 범위
프로젝트를 빌드하고 테스트하려면 제공된 범위가있는 Maven 종속성이 필요합니다. 이 종속성은 런타임에 사용할 수 있으므로 내 보내지 않는 것이 좋습니다. 그러나 빌드를 실행하려면이 종속성이 필요합니다. 아래 코드 조각은 제공된 범위 종속성을 보여줍니다.
com.test MavenJava2 5.1.1 provided
# 4) 테스트 범위
테스트 범위가있는 Maven 종속성은 프로젝트 빌드 및 실행에 필요하지 않습니다. 기본적으로 단위 테스트 케이스를 컴파일하고 실행하는 데 사용됩니다. 아래 코드 조각은 테스트 범위 종속성을 보여줍니다.
com.testing MavenJava3 1.0.2 test
# 5) 가져 오기 범위
pom 파일 내에서 종속성 관리 섹션에는 범위 가져 오기가 포함됩니다. 이는 pom 파일의 dependencyManagement 섹션에 제공된 유효한 종속성 그룹으로 종속성이 변경됨을 나타냅니다. 아래 코드 조각은 가져 오기 범위 종속성을 보여줍니다.
com.testhelp MavenJava4 SNAP import pom
# 6) 컴파일 범위
컴파일 범위가있는 Maven 종속성이 기본 종속성입니다. 이 종속성은 프로젝트를 빌드, 테스트 및 실행하는 데 필수적입니다. 이것은 import 문이있는 Java 소스 코드를 해결하는 데 가장 중요합니다. 아래 코드 조각은 컴파일 범위 종속성을 보여줍니다.
logging log 2.1.3 compile
Maven 배포 자동화
프로젝트 배포는 중요한 단계이며 아래와 같이 정의 된 여러 단계를 포함합니다.
- 저장소에서 확인하기 위해 개발 된 코드입니다.
- 저장소에서 다운로드 할 소스 코드입니다.
- 애플리케이션 컴파일 및 빌드, JAR 또는 WAR 파일 생성.
- 식별 된 JAR 또는 WAR 파일을 익숙한 네트워크 위치에 배치합니다.
- JAR 또는 WAR 파일을로드하십시오.
- 다운로드 한 JAR 또는 WAR 파일을 대상 서버에 배포합니다.
- 문서에서 업데이트 할 애플리케이션의 새 버전 번호와 날짜.
위에서 언급 한 단계는 프로젝트에 참여한 팀의 각 구성원이 따릅니다. 위에 나열된 단계 중 누락 된 사람이 있거나 제대로 수행되지 않은 경우 다음과 같은 결과가 발생합니다. 빌드 및 배포 실패 . 따라서 중간에 오류가 발생하면 자동으로 수정해야합니다.
Maven은 배포를 자동화하고 강력하게 만들기 위해 배포 자동화 방법을 따릅니다. 이는 아래 나열된 프로세스의 조합으로 이루어집니다.
- Maven이 처리 할 프로젝트의 빌드 및 릴리스.
- Subversion 및 소스 코드 저장소에서 관리 할 소스 코드입니다.
- 원격 저장소 관리자를 돌보는 프로젝트 바이너리.
Maven의 자동화 된 빌드 및 릴리스 프로세스는 Maven 릴리스 플러그인에 의해 처리됩니다. pom.xml 파일은 아래와 같이 업데이트되어야합니다.
아래 코드는 com.softwaretestHelp 프로젝트 pom.xml 용입니다.
4.0.0 com.softwaretestHelp TestApplication war 2.0 WebTest Maven Java http://maven.apache.org http://www.svn.com scm:svn:http://localhost:8080/svn/jrepo/trunk/Framework scm:svn:testing/test@localhost:8080:common_core_api:1101:code SampleTest-Web-Release Release repository http://localhost:8082/nexus/content/repositories/SampleTest-Web-Release org.apache.maven.plugins maven-release-plugin 2.0-beta-9 false deploy (SampleTest-Web- checkin) junit junit 3.9 test
위 pom.xml 파일의 두드러진 기능은 다음과 같습니다.
더 나은 리눅스 또는 윈도우
- SCM : SVN의 위치 (소스 코드가있는 위치)는 SCM에서 구성합니다.
- 저장소 : 프로젝트 빌드를 성공적으로 완료 한 후 JAR, WAR 또는 EAR 파일 또는 기타 프로젝트 아티팩트의 위치입니다.
- 플러그인 : Maven 릴리스 플러그인에 의해 수행되는 배포 자동화.
Maven 릴리스 플러그인
Maven 릴리스 플러그인은 다음 활동을 수행합니다.
- mvn release : clean – 향후 빌드가 도착하기 전에 이전 빌드의 작업 공간을 정리합니다.
- mvn 릴리스 : 롤백 – 이전 빌드가 실패한 경우 작업 공간으로 롤백됩니다.
- mvn 릴리스 : 준비 – 파일에 커밋되지 않은 변경 사항이 있는지 확인합니다. 또한 스냅 샷 종속성을 확인하고 애플리케이션의 버전 번호를 업데이트합니다. pom을 SCM으로 수정합니다. 테스트 케이스 실행을 처리하고 SCM에 대한 최종 코드 커밋을 수행합니다. Subversion에서 코드의 태깅을 수행합니다. 마지막으로,이 플러그인에 의해 버전 번호가 증가하고 향후 다른 릴리스의 SNAPSHOT에 첨부됩니다.
- mvn 릴리스 : 수행 – 저장소에있는 코드를 확인한 다음 Maven 빌드 목표를 실행하여 빌드 아티팩트를 저장소에 배포합니다.
마지막으로 프로젝트를 빌드하려면 아래 명령을 실행해야합니다.
mvn release: prepare
빌드가 성공적으로 완료되면 다음 명령을 실행하십시오.
mvn release: perform
이제 WAR 파일이 저장소에 업로드됩니다.
결론
Maven과 Eclipse의 통합, TestNG와의 통합, Maven 프로필, Maven의 종속성 범위 및 Maven의 배포 자동화의 주요 부분을 지금 이해할 수 있기를 바랍니다. 또한 여기서는 대부분의 종속성 범위에 대해 설명했습니다.
Maven 배포 프로세스의 경우 모든 단계를 심층적으로 탐색하고 일부 Maven 릴리스 플러그인에 대해 설명했습니다. 주제를 읽고 점차적으로 우리 작업에서 Maven을 사용하는 진정한 본질을 이해하게 될 것입니다.
시리즈를 계속 진행하고 향후 튜토리얼에서 Maven Jenkins 통합, Maven 인터뷰 질문 등에 대한 지식을 수집 할 것입니다.