maven 項目中讀取不一樣的配置文件

首先,咱們須要有不一樣的配置文件 配置文件截圖java

其次,咱們須要在pom.xml中進行配置mysql

<!-- 構件羨慕所須要的信息 -->
	<build>
		<!-- 使用的插件列表 -->
		<plugins>
			<!-- plugin元素包含描述插件所須要的信息 -->
			<plugin>
				<!-- 數據庫映射類生成的插件 -->
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>${mybatis-generator.version}</version>
				<configuration>
					<!-- 詳細信息和覆蓋 -->
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
				<!-- 該插件的依賴 -->
				<dependencies>
					<dependency>
						<groupId>org.mybatis.generator</groupId>
						<artifactId>mybatis-generator-core</artifactId>
						<version>${mybatis-generator.version}</version>
					</dependency>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>${mysql.version}</version>
					</dependency>
					<dependency>
						<groupId>org.mybatis</groupId>
						<artifactId>mybatis</artifactId>
						<version>${mybatis.version}</version>
					</dependency>					
					
				</dependencies>



		
			</plugin>
			<!-- 這是maven插件的插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.6</version>
				<!-- 在構建生命週期中執行一組目標的配置。每一個目標可能有不一樣的配置。 -->
				<executions>
					<!-- execution元素包含了插件執行須要的信息 -->
					<execution>
						<!-- 執行目標的標識符,用於標識構建過程當中的目標,或者匹配繼承過程當中須要合併的執行目標 -->
						<id>copy-resources</id>
						<!-- 綁定了目標的構建生命週期階段,若是省略,目標會被綁定到源數據裏配置的默認階段 -->
						<!-- 在default生命週期的 validate階段就執行resources插件的copy-resources目標 -->
						<phase>validate</phase>
						<!-- 配置的執行目標 -->
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<!-- 做爲DOM對象的配置 -->
						<configuration>
							<!-- 指定resources插件處理資源文件到哪一個目錄下 -->
							<outputDirectory>${project.build.outputDirectory}</outputDirectory>
							<!-- 也能夠用下面這樣的方式(指定相對url的方式指定outputDirectory) <outputDirectory>target/classes</outputDirectory> -->
							<!-- 待處理的資源定義 -->
							<overwrite>true</overwrite>
							<!-- 二進制文件的複製 -->
							<nonFilteredFileExtensions>
								<!-- <nonFilteredFileExtension>p12</nonFilteredFileExtension> -->
							</nonFilteredFileExtensions>
							<resources>
								<resource>
									<!-- 指定resources插件處理哪一個目錄下的資源文件 -->
									<directory>src/main/conf/${env}</directory>
									<targetPath></targetPath>
									<!-- 指定不須要處理的資源 -->
									<!-- <excludes> <exclude>WEB-INF/*.*</exclude> </excludes> -->
									<filtering>true</filtering>
								</resource>
							</resources>
						</configuration>
						<inherited></inherited>
					</execution>
				</executions>
			</plugin>

		</plugins>
		
		<!-- 定位打包配置文件 -->
		 <resources>
		 	<resource>
             	<directory>src/main/resources</directory>
             	<includes>
                 	<include>**/*.properties</include>
         			<include>**/*.xml</include>
             	</includes>
         	</resource>
         	<!-- 用於正確打包repository裏的xml文件 -->
         	<resource>
             	<directory>src/main/java</directory>
             	<includes>
                 	<include>**/*.properties</include>
         			<include>**/*.xml</include>
             	</includes>
         	</resource>
    	</resources>
		
		<finalName>ROOT</finalName>
	</build>
        <!-- 這裏就是開始進行分類配置,不一樣的環境,咱們給他不一樣的id,這個id與截圖中的文件夾名稱相同,由於打包的時的打包語句中會有該id,id和哪一個對應,就使用哪一個配置環境 -->
	<profiles>
		<!-- 開發環境,默認激活 -->
		<profile>
			<id>dev</id>
			<properties>
				<env>dev</env>
			</properties>
			<activation>
				<!--默認啓用的是dev環境配置 -->
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<!-- 測試環境 -->
		<profile>
			<id>test</id>
			<properties>
				<env>test</env>
			</properties>
		</profile>
		<!-- 生產環境 -->
		<profile>
			<id>prod</id>
			<properties>
				<env>prod</env>
			</properties>
		</profile>
		<!-- 預發佈環境 -->
		<profile>
			<id>uat</id>
			<properties>
				<env>uat</env>
			</properties>
		</profile>
		
	</profiles>

配置好了以後,在打包的時候寫入對應的關鍵字,也就是配置文件中的profile的id,就能夠讀取對應的配置文件了。sql

相關文章
相關標籤/搜索