1 POM修改 第一个是根据不同的打包参数,引用不同的jar
<dependencies>
<dependency>
<groupId>com.**.**</groupId>
<artifactId>orderbank-cbd-service-${maven-site-suffix}</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependencies>
<profiles>
<profile>
<id>cbd-jd-test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
<profileName>cbd-jd</profileName>
<maven-site-suffix>jd</maven-site-suffix>
<props>src/main/mvn-filters/cbd-jd/test.properties</props>
<props-dir>cbd-jd/</props-dir>
</properties>
</profile>
<profile>
<id>cbd-jd-pre</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
<profileName>cbd-jd</profileName>
<maven-site-suffix>jd</maven-site-suffix>
<props>src/main/mvn-filters/cbd-jd/pre.properties</props>
<props-dir>cbd-jd/</props-dir>
</properties>
</profile>
<profile>
<id>cbd-jd-prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
<profileName>cbd-jd</profileName>
<maven-site-suffix>jd</maven-site-suffix>
<props>src/main/mvn-filters/cbd-jd/prod.properties</props>
<props-dir>cbd-jd/</props-dir>
</properties>
</profile>
<profile>
<id>cbd-id-test</id>
<properties>
<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
<profileName>cbd-id</profileName>
<maven-site-suffix>id</maven-site-suffix>
<props>src/main/mvn-filters/cbd-id/test.properties</props>
<props-dir>cbd-id/</props-dir>
</properties>
</profile>
<profile>
<id>cbd-id-pre</id>
<properties>
<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
<profileName>cbd-id</profileName>
<maven-site-suffix>id</maven-site-suffix>
<props>src/main/mvn-filters/cbd-id/pre.properties</props>
<props-dir>cbd-id/</props-dir>
</properties>
</profile>
<profile>
<id>cbd-id-prod</id>
<properties>
<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
<profileName>cbd-id</profileName>
<maven-site-suffix>id</maven-site-suffix>
<props>src/main/mvn-filters/cbd-id/prod.properties</props>
<props-dir>cbd-id/</props-dir>
</properties>
</profile>
</profiles>
<build>
<finalName>${name}-${version}</finalName>
<filters>
<filter>${props}</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>${props-dir}props/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<!-- 编译plugin -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- resources 编码 -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- Source attach plugin -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.0.4</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<webResource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>web.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</webResource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
2 web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:${spring-config-file}</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>${profileName}</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3 WEB mvn-filter里打包时是根据不同的打包参数让不同的配置文件替换到sources下的占位符里
4java 下面通过spring的profile注解,可以使得Spring根据不同的打包参数加载不同的bean
@Profile("cbd-th")
@Service("orderBankTest1Service")
public class OrderBankTest1CBDServiceTh extends OrderBankTest1CBDBaseService implements OrderBankTest1Service{
@Override
public String test1CBDFunction() {
System.out.println("th");
return "TH";
}
}
@Profile("cbd-jd")
@Service("orderBankTest1Service")
public class OrderBankTest1CBDServiceIn extends OrderBankTest1CBDBaseService implements OrderBankTest1Service{
@Override
public String test1CBDFunction(){
System.out.println("cbd-jd");
return "cbd-jd";
}
}
5 上面通过maven的profile加载比较麻烦,通过spring的profile加载更简单