Maven 명령 행 패키지 와 pom.xml 의 일반적인 설정 설명

maven 명령 행 패키지
 mvn -v, --show-version
현재 최신 maven 버 전 은 3.6 입 니 다.제 가 사용 하 는 것 은 2017 년 에 다운로드 한 3.1.1 버 전 입 니 다.
在这里插入图片描述
在这里插入图片描述
mvn -h, --help
help 명령 을 사용 하면 maven 명령 의 도움말 문 서 를 볼 수 있 습 니 다.다음은 자주 사용 하 는 명령 인 D 와 P 를 소개 합 니 다.
在这里插入图片描述
mvn -D, --define mvn -DpropertyName=propertyValue clean package다가 올 때 속성 과 값 을 정의 할 수 있 습 니 다.pom.xml 에 이 속성 이 있 으 면 pom.xml 의 값 을 바 꿉 니 다.
여러 변 수 를 정의 하려 면 빈 칸 으로 구분 할 수 있 습 니 다.mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package물론 이 속성 도 pom.xml 파일 에서 직접 설정 할 수 있 습 니 다.

<project>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<android.sdk.path>C:\software\android\sdk</android.sdk.path>
		<maven.test.skip>true</maven.test.skip>
		<maven.javadoc.skip>true</maven.javadoc.skip>
	</properties>
</project>
mvn -P, --activate-profiles
P 는 Profiles 설정 파일 을 표시 합 니 다.탭 에를 지정 해 야-P 를 사용 할 수 있 습 니 다.
만약 pom.xml 가 다음 과 같다 면:

<project>
	...
	<profiles>
		<profile>
			<id>test</id>
			...
		</profile>
		<profile>
			<id>dev</id>
			...
		</profile>
		<profile>
			<id>prod</id>
			...
		</profile>
	</profiles>
	...
</project>
그러면 포장 할 때 실행mvn clean package -P prod은 prod 환경의 profile 설정 만 활성화 합 니 다(즉,이때 test 와 dev 의 설정 이 적용 되 지 않 습 니 다)
mvn package 와 mvn install 의 차이
명령 하 다.
속뜻
mvn clean
대상 디 렉 터 리 삭제
mvn package
jar 를 이 항목 의 target 디 렉 터 리 에 연결 합 니 다.
mvn install
jar 를 이 프로젝트 의 target 디 렉 터 리 에 연결 한 후 로 컬 maven 창고 에 설치 합 니 다.
화면 음악 패키지 플러그 인의 실행 순서
저 는 Maven 3.1.1 패키지 안 드 로 이 드 프로젝트 를 사용 합 니 다.

--- maven-clean-plugin:2.5:clean (default-clean)
--- maven-install-plugin:2.4:install (default-install)
>>> maven-javadoc-plugin:2.6.1:javadoc (default-cli)
<<< maven-javadoc-plugin:2.6.1:javadoc (default-cli)
--- maven-javadoc-plugin:2.6.1:javadoc (default-cli)
--------------------------------------------------------------
--- maven-clean-plugin:2.5:clean (default-clean)
--- maven-resources-plugin:2.6:copy-resources (copy-src)
--- android-maven-plugin:3.8.0:generate-sources (default-generate-sources)
--- maven-resources-plugin:2.6:copy-resources (default-resources)
--- maven-compiler-plugin:2.3.1:compile (default-compile)
--- android-maven-plugin:3.8.0:proguard (default-proguard)
--- maven-resources-plugin:2.6:testResources (default-testResources)
--- maven-compiler-plugin:2.3.1:testCompile (default-testCompile)
--- maven-surefire-plugin:2.14:test (default-test)
--- maven-jar-plugin:2.6:jar (default-jar)
--- android-maven-plugin:3.8.0:apklib (default-apklib)
--- maven-install-plugin:2.3.1:install-file (custom-install)
--- maven-antrun-plugin:1.3:run (to-lib-directory)
>>> maven-javadoc-plugin:2.9:javadoc (default-cli)
--- maven-resources-plugin:2.6:copy-resources (copy-src)
--- android-maven-plugin:3.8.0:generate-sources (default-generate-sources)
<<< maven-javadoc-plugin:2.9:javadoc (default-cli)
--- maven-javadoc-plugin:2.9:javadoc (default-cli)
플러그 인
설명 하 다.
maven-clean-plugin
대상 디 렉 터 리 삭제
maven-resources-plugin
파일 복사 및 교체
maven-compiler-plugin
모든 원본 파일 을 컴 파일 하여 target\classes 디 렉 터 리 에 class 파일 을 생 성 합 니 다.
maven-surefire-plugin
실행 테스트 용례
maven-jar-plugin
컴 파일 후 생 성 된 파일 을 압축 합 니 다.
패키지 이름 기본 값:artifactId-version-SNAPSHOT.jar,target 디 렉 터 리 에 저장
maven-javadoc-plugin
문서 생 성
android-maven-plugin
Android 클래스 파일 생 성,혼동(apklib 는 aar 와 차이 가 많 지 않 고 클래스 와 자원 을 함께 합 니 다)
실전
사례 1
mvn 포장 을 사용 하고 테스트 를 건 너 뛴 다음 문 서 를 만 들 고 dev 설정 을 사용 합 니 다.

@echo off
mvn clean package -Dmaven.test.skip=true javadoc:javadoc -Pdev
사례 2
모듈 A 가 생 성 한 jar 를 모듈 B 의 libs 디 렉 터 리 에 복사 합 니 다.
마 븐 창고 에 모듈 을 설치 합 니 다.

@echo off
copy /y "moduleA/target/target.jar" "moduleB/libs/baseA.jar"
call mvn install:install-file -Dfile=baseA.jar -DgroupId=com.example -DartifactId=baseA -Dversion=1.0.1 -Dpackaging=jar
기본적으로 cmd 명령 이 호출 되면 바로 돌아 갑 니 다.한편,CALL 은 외부 일괄 처리 프로그램 을 호출 하 는 명령 으로 함수 호출 과 유사 한 실행 논리 로 함수 실행 이 끝 날 때 까지 기 다 렸 다가 돌아 갑 니 다.
pom.xml 의 일반적인 설정
 denpendency Management 와 plugin Management
denpendency Management 는 프로젝트 jar 패키지 의존 을 관리 하 는 데 사용 되 며,plugin Management 는 plugin 을 관리 하 는 데 사 용 됩 니 다.
이들 의 역할 은 의존 하 는 jar 패키지 나 plugin 패 키 지 를 표시 하여 인용 여 부 를 결정 하 는 것 입 니 다.
서로 다른 설정 에 서로 다른 속성 을 부여 합 니 다.

<profiles>
	<profile>
		<id>dev</id>
		<properties>
			<mysql.url>http://localhost:3306</mysql.url>
		</properties>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
	</profile>
	<profile>
		<id>prod</id>
		<properties>
			<mysql.url>http://192.168.1.10:3306</mysql.url>
		</properties>
	</profile>
</profiles>
activation 요 소 는 활성화 조건 을 지정 합 니 다.지정 한 조건 이 없 으 면 activeByDefault 를 true 로 지정 할 때 profflee 를 가리 키 지 않 은 상태 에서 기본적으로 활성화 합 니 다.즉mvn packagedev 설정 을 사용 하고mvn package -P prod때 사용 하 는 것 이 프로 드 설정 이다.
설정 에 따라 원본 파일 을 사용 합 니 다.

<profiles>
	<profile>
		<id>dev</id>
		<properties> 
   <debug.enable>true</debug.enable> 
  </properties> 
		<plugin>
			<artifactId>maven-resources-plugin</artifactId>
			<version>2.6</version>
			<executions>
				<execution>
					<id>copy-id</id>
					<goals>
						<goal>copy-goal</goal>
					</goals>
					<phase>validate</phase>
					<configuration>
						<outputDirectory>${basedir}/src/com/companyName/global/</outputDirectory>
						<resources>
							<directory>${basedir}/profiles/dev/</directory>
							<filtering>true</filtering>
							<includes>
								<include>**/*.java</include>
							</includes>
						</resources>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</profile>
</profiles>
그리고 prolees/dev 디 렉 터 리 에 자바 파일 을 새로 만 듭 니 다.

( )
	private boolean isDebugEnable = ${debug.enable}
	( )
패키지 명령mvn clean package -DskipTests -Pdev을 실행 하면/profiles/dev 디 렉 터 리 에 있 는 자바 파일 이 모두/src/com/copanyName/global 디 렉 터 리 에 복사 되 었 고 isDebugEnable 값 도 바 뀌 었 습 니 다.
설정 항목 설명:
parse 는 maven 의 어떤 수명 주기 에 이 임 무 를 수행 하 는 지 구체 적 으로 밝 히 는 데 사용 된다.
maven 의 생명주기 표
라 이 프 사이클 단계
묘사 하 다.
validate
프로젝트 가 정확 한 지 검증 하고 필요 한 모든 정 보 는 구축 과정 을 완성 하 는 데 사용 할 수 있 습 니 다.
initialize
속성 설정 과 같은 초기 화 상 태 를 만 듭 니 다.
generate-sources
컴 파일 단계 에 포 함 된 모든 소스 코드 를 만 듭 니 다.
process-sources
처리 소스 코드,예 를 들 어 필터 값
generate-resources
가방 에 포 함 된 자원
process-resources
대상 디 렉 터 리 로 자원 복사 및 처리,포장 준비 단계
compile
이 항목 의 원본 코드 를 컴 파일 합 니 다.
process-classes
컴 파일 에서 생 성 된 파일 제출 처리,예 를 들 어 자바 류 의 바이트 코드 강화/최적화
generate-test-sources
모든 테스트 소스 코드 를 컴 파일 단계 에 포함 시 킵 니 다.
process-test-sources
테스트 소스 코드 를 처리 합 니 다.예 를 들 어 필터 의 모든 값 입 니 다.
test-compile
테스트 소스 코드 를 테스트 대상 디 렉 터 리 로 컴 파일 합 니 다.
process-test-classes
테스트 코드 파일 컴 파일 생 성 파일 처리
test
테스트 실행 에 적합 한 유닛 테스트 프레임 워 크 사용(JUnit)
prepare-package
필요 한 모든 작업 의 실제 포장 을 실행 하기 전에 가방 을 준비 합 니 다.
package
컴 파일 된 코드 를 추출 하고 JAR,WAR 또는 EAR 파일 과 같은 배포 형식 으로 포장 합 니 다.
pre-integration-test
통합 테스트 를 수행 하기 전에 필요 한 작업 을 수행 합 니 다.예 를 들 어 필요 한 환경 설정
integration-test
통합 테스트 가 실 행 될 수 있 는 환경 에 소프트웨어 패 키 지 를 처리 하고 필요 할 때 배치 합 니 다.
pre-integration-test
통합 테스트 가 모두 실 행 된 후 필요 한 작업 입 니 다.청소
verify
모든 검 사 를 실행 하면 검증 가방 은 유효 하고 품질 심사 규정 에 부합 한다.
install
패 키 지 를 로 컬 저장 소 에 설치 하면 현지 다른 프로젝트 의 의존 으로 사용 할 수 있 습 니 다.
deploy
최종 가방 을 원 격 창고 로 복사 하여 다른 개발 자 와 프로젝트 와 공유 합 니 다.
inherited 는 execution 이 하위 pom.xml 에 전 달 될 지 여 부 를 가리 키 는 데 사 용 됩 니 다.
filering 속성 은 자원 파일 의"EL 표현 식 자리 차지 문자"가 바 뀌 어야 하 는 지,true 는 바 뀌 어야 하 는 지 를 나타 내 는 데 사 용 됩 니 다.
Maven 명령 행 패키지 와 pom.xml 에 대한 자주 사용 되 는 설정 에 대한 자세 한 설명 은 여기까지 입 니 다.Maven 명령 행 패키지 와 pom.xml 설정 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기