복붙노트

[SPRING] 메이븐 프로파일 또는 스프링 프로파일?

SPRING

메이븐 프로파일 또는 스프링 프로파일?

많은 자바 애플리케이션은 Maven으로 빌드된다. maven에는 Profiles 개념이있다. 다른 환경에 맞는 릴리스 패키지를 만드는 것이 정말 편리하다. 예 : dev / test / prod 다른 경로 / jndiname / 보안 규칙 / 속성 파일을 사용하여 ... 나는 그것을 설명하기 위해 여기에 코드를 나열 할 필요는 없다고 생각한다.

Spring은 Java 개발을위한 매우 훌륭하고 인기있는 프레임 워크입니다. spring3 이후에는 프로파일 개념도 지원됩니다.

이제 다른 ENV 목적을 발표하는 데 문제가 있습니다. 어느 것이 더 낫습니까? 지금 나는 메이븐 프로필을 선호합니다. 왜냐하면 봄은 각 프로파일의 각 bean 정의를 복사해야하기 때문이다. 어떤 프로필을 활성화해야 하는지를 봄에 알려주기 위해 이니셜 라이저 / 속성이 필요하다.

봄 프로필은 Maven 프로필보다 융통성이 있다고 느낍니다.

어떻게 생각해? 조언을 좀 해주세요. 고맙습니다.

해결법

  1. ==============================

    1.Maven 프로파일은 빌드 타임 솔루션을 제공하지만 SpringFramework 프로파일은 런타임 대안을 제공합니다. 나는 이것이 다른 환경에 배치 될 수있는 단일 패키지를 원한다면, 또는 빌드 도구가 대상 환경에 따라 다른 패키지를 제공하기를 원한다면, 이것이 스스로에게 묻을 수있는 첫 번째 질문이라고 생각한다.

    Maven 프로파일은 빌드 타임 솔루션을 제공하지만 SpringFramework 프로파일은 런타임 대안을 제공합니다. 나는 이것이 다른 환경에 배치 될 수있는 단일 패키지를 원한다면, 또는 빌드 도구가 대상 환경에 따라 다른 패키지를 제공하기를 원한다면, 이것이 스스로에게 묻을 수있는 첫 번째 질문이라고 생각한다.

    명심해야 할 것은 다른 패키지가 다른 서버에 배포되어있는 경우 많은 질문이 발생할 수 있다는 것입니다. 예를 들어 제 작업 환경에서 프로덕션 환경에서 이전에 발생한 버그를 해결하기 위해 패키지를 배포하는 경우 회사 정책에 따르면 QA 및 프로덕션 서버에서 동일한 솔루션 패키지를 사용할 수있는 유일한 시나리오라고 나와 있습니다.

  2. ==============================

    2.다른 유물이 필요한 경우에는 maven을 사용하십시오. 인공물이 빌드 된 후 사용자가 스프링 프로파일을 구성한 후에 구성 할 수있는 것은 실제 구성 일뿐입니다.

    다른 유물이 필요한 경우에는 maven을 사용하십시오. 인공물이 빌드 된 후 사용자가 스프링 프로파일을 구성한 후에 구성 할 수있는 것은 실제 구성 일뿐입니다.

  3. ==============================

    3.다른 답장에서 언급했듯이 : 그것은 모두 당신이 일하는 방식에 달려 있습니다 :)

    다른 답장에서 언급했듯이 : 그것은 모두 당신이 일하는 방식에 달려 있습니다 :)

    우리가 지난 몇 년 동안 maven을 사용했고 지금은 봄 3.1 프로파일을 사용했다는 사실은 다음과 같습니다.

    거기에 주위에 몇 가지 좋은 튜토리얼을 어떻게 할 수 있습니다 :

    우리는 일반적으로 개발자와 지속적인 통합 빌드를 위해 빌드를 여러 부분으로 분할하기 위해서만 maven 프로파일을 사용합니다. .war 파일에 대해서는 더 이상 대상 환경에 사용하지 않습니다. 우리는 여전히 자동화 된 데이터베이스 배치를 위해 maven 프로파일을 사용하는데, 웹 애플리케이션 (데이터, 테스트 데이터 등)의 양과 비교하여 차이가 있지만 zip 등으로 제공되지는 않습니다.

    반드시 다른 방법이 있습니다. 나는 그 이야기의 끝을 생각하지 않는다. :)

    하지만 도움이 될 수 있습니다.

  4. ==============================

    4.어떤 maven 프로필이 활성화되었는지에 따라 시스템 속성을 설정하기 위해 maven-plugin 속성을 사용했습니다. 그런 다음 봄에 필자는 시스템 속성에 따라 원하는 프로필을 프로그래밍 방식으로 활성화했습니다.

    어떤 maven 프로필이 활성화되었는지에 따라 시스템 속성을 설정하기 위해 maven-plugin 속성을 사용했습니다. 그런 다음 봄에 필자는 시스템 속성에 따라 원하는 프로필을 프로그래밍 방식으로 활성화했습니다.

    문자열 activeProfile = System.getProperty ( "myapp.profile");

    appContext.getEnvironment (). setActiveProfiles (....)

    또한, 두 종류의 프로파일 (maven / spring)을 직접 링크하고자 할 때, 나는 maven 플러그인을 통해 spring.profiles.active 속성을 설정했다.

    이러한 관행은 설계에서 잘못되었을 수도 있지만 문제를 해결했습니다.

  5. ==============================

    5.나는 그것이 당신의 요구 사항에 달려 있다고 생각합니다. 환경 (예 : jdbc 드라이버 등)에 따라 다른 종속성이 있다면 maven을 사용하여이를 정렬하는 것이 좋습니다.

    나는 그것이 당신의 요구 사항에 달려 있다고 생각합니다. 환경 (예 : jdbc 드라이버 등)에 따라 다른 종속성이 있다면 maven을 사용하여이를 정렬하는 것이 좋습니다.

    배포 구성의 문제 일 경우 봄을 사용하는 것이 더 나을 것입니다.

  6. from https://stackoverflow.com/questions/11869064/maven-profiles-or-spring-profiles by cc-by-sa and MIT license