ふたりで

springboot+maven 개발+운영+local application.properties 분리(resources폴더 분리) 본문

Maven

springboot+maven 개발+운영+local application.properties 분리(resources폴더 분리)

graykang 2020. 12. 4. 16:52
728x90
반응형
SMALL

1. 프로젝트 구조

프로젝트 명은 캡처하지 않았다. 머 예를 들면 graykang이라는 폴더 내에 아래 그림과 같은 구조로 되어있다고 보면 된다.

 

2. pom.xml 내에 profiles 설정 상태.

local의 경우 개발 PC 환경이기 때문에 activeByDefault 값을 true로 해주었다.

	<profiles>
		<profile>
        <!-- 패키징(빌드시) ㅡ그냥maven install-->
			<id>local</id>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<deploy.phase>local</deploy.phase>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
        <!-- 패키징(빌드) Goals옵션 clean package -Pdev -->
			<id>dev</id>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<deploy.phase>dev</deploy.phase>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<profile>
        <!-- 패키징(빌드) Goals옵션 clean package -Prelease -->
			<id>release</id>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<deploy.phase>release</deploy.phase>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>

	</profiles>

3. pom.xml 내에 build 설정 상태

	<build>
    <!-- dev 또는 release또는 local로 패키징시 아래 설정한 path들을 참고 한다.-->
 		<sourceDirectory>src/main/java</sourceDirectory>
		<testSourceDirectory>src/test/java</testSourceDirectory>
		<outputDirectory>${project.basedir}/target/classes</outputDirectory>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>resources-${deploy.phase}/</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
	<!-- 개발서버에 패키징(빌드) 및 배포시 Goals 옵션[clean tomcat7:undeploy tomcat7:deploy -Pdev]  -->	
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<server>TomcatServer</server> <!-- 이부분은 .m2/setting.xml 설정을 참조한다. -->
					<url>http://127.0.0.1:8080/manager/text</url>
					<path>/testpro</path> <!-- 이부분이 서비스 context명 -->
					<update>true</update>
				</configuration>
			</plugin>
			
		</plugins>
	</build>
    
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
		</repository>
		<repository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
		</pluginRepository>
		<pluginRepository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
728x90
반응형
LIST
Comments