maven profile 동적 선택 프로필 상세 설명
개발 과정 에서 우리 의 소프트웨어 는 서로 다른 운영 환경 에 직면 할 것 이다.예 를 들 어 개발 환경,테스트 환경,생산 환경 등 이다.우리 의 소프트웨어 는 서로 다른 환경 에서 어떤 설정 은 다 를 수 있다.예 를 들 어 데이터 소스 설정,로그 파일 설정,그리고 일부 소프트 부품 운행 과정 에서 의 기본 설정 등 이다.그러면 우리 가 소프트웨어 를 서로 다른 환경 에 배치 할 때마다상응하는 프로필 을 수정 해 야 한다.이렇게 왔다갔다 수정 하면 실수 하기 쉽 고 노동력 을 낭비 하기 쉽다.
maven 은 이러한 문 제 를 편리 하 게 해결 하 는 방안 을 제공 하 는데 그것 이 바로 profflee 기능 이다.
프로필 프로필
profflee 는 일련의 설정 정 보 를 정의 한 다음 활성화 조건 을 지정 할 수 있 습 니 다.이렇게 하면 우 리 는 여러 개의 프로필 을 정의 한 다음 에 각 프로필 은 서로 다른 활성화 조건 과 설정 정보 에 대응 하여 서로 다른 환경 에서 서로 다른 설정 정 보 를 사용 하 는 효 과 를 얻 을 수 있다.
profile 정의 위치
(1)특정 항목 에 대한 프로필 설정 은 이 항목 의 pom.xml 에 정의 할 수 있 습 니 다.(예 를 들 면 이런 식 이다)
(2)특정 사용자 에 대한 프로필 설정 은 사용자 의 settings.xml 파일 에서 프로필 을 정의 할 수 있 습 니 다.이 파일 은 사용자 의 집 디 렉 터 리 에 있 는"m2"디 렉 터 리 에 있 습 니 다.
(3)전역 프로필 설정.전역 프로필 은 Maven 설치 디 렉 터 리 에 있 는'conf/settings.xml'파일 에 정 의 됩 니 다.
3.동적 패키지 설정
1.프로필 설정
프로젝트 프로필 에 다음 프로필 설정 을 추가 합 니 다:
<profiles>
<profile>
<!-- -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- -->
<id>release</id>
<properties>
<profiles.active>release</profiles.active>
</properties>
</profile>
<profile>
<!-- -->
<id>beta</id>
<properties>
<profiles.active>beta</profiles.active>
</properties>
</profile>
</profiles>
dev(개발 환경),베타(테스트 환경),release(발표 환경)등 세 가지 환경 을 정의 합 니 다.그 중에서 개발 환경 은 기본적으로 활성화 되 어 있 습 니 다(activeByDefault 는 true).프로필 을 지정 하지 않 을 때 기본적으로 개발 환경 이 고 package 에서 어떤 개발 환경 을 선택 할 지 표시 합 니 다.자세 한 내용 은 다음 을 참조 하 십시오.2.프로필
서로 다른 환경 에 대해 우 리 는 서로 다른 프로필 을 정 의 했 습 니 다.파일 디 렉 터 리 는 다음 과 같 습 니 다.
그림 에서 보 듯 이 개발 환경,테스트 환경,생산 환경의 설정 파일 은 각각 src/main/resources 디 렉 터 리 에 있 는 config 폴 더 에 넣 습 니 다.
config 아래 여러 환경의 프로필 이 있 습 니 다.이름 규칙 은 application-환경 이름.properties 입 니 다.
처리 과정:
1)프로필 을 통 해 사용 할 환경 선택
2)package 명령 을 통 해 환경 변 수 를 application.properties 에 주입 합 니 다.(이렇게 되면 공용 환경 변 수 는 각 환경의 프로필 에 설정 하지 않 아 도 됩 니 다)
3)항목 에 application.xml 파일 불 러 오기
프로필 불 러 오기
<context:property-placeholder location="classpath:application.properties"/>
예:application-beta.properties 파일 은 다음 과 같은 부분 이 있 습 니 다.
env.datasource.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&autoReconnect=true&zeroDateTimeBehavior=round
env.datasource.username=root
env.datasource.password=12233
application.properties 는 위의 내용 을 주입 하 는 데 다음 과 같은 내용 이 있 습 니 다.
datasource.jdbcUrl=${env.datasource.jdbcUrl}
datasource.username=${env.datasource.username}
datasource.password=${env.datasource.password}
3.maven 자원 플러그 인 설정pom.xml 의 build 노드 에서 자원 파일 의 위 치 를 설정 합 니 다.다음 과 같 습 니 다.
<build>
<finalName>seewo-admin</finalName>
<!-- -->
<filters>
<filter>src/main/resources/config/application-${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>
</plugins>
</build>
여기 서 매개 변수4、프로필 활성화
1)기본 활성화
위의 프로필 설정 에 설 치 된 기본 활성화 환경 입 니 다.아래 와 같다
<activeByDefault>true</activeByDefault>
2)사용-P 매개 변수 표시 프로필 활성화Maven 작업 을 할 때-P 매개 변 수 를 사용 하여 현재 활성 화 된 프로필 을 지정 할 수 있 습 니 다.예 를 들 어 우 리 는 프로젝트 를 포장 할 때 id 를 dev 의 profile 로 사용 해 야 한다.우 리 는 이렇게 할 수 있다.
mvn package CPdev
여기 서 dev 가 settings.xml 에서 dev 로 표 시 된 활성 상태 에 있 는 profile 이 라 고 가정 하면'-P!profflee'는 현재 작업 중 이 profflee 가 활성화 되 지 않 을 것 임 을 표시 합 니 다.5.호출
private Logger logger = LogManager.getLogger(MyApp.class.getName());
다른 사용 은 log4j 와 같 습 니 다.만난 구덩이
application.xml 파일 에@키 가 나타 나 지 않 습 니 다.주석 을 달 아 도 안 됩 니 다.@이 나타 나 면 모든 환경 변 수 는 주입 되 지 않 습 니 다.
예:
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.