引入说的是“运行时”而非编译期
如果编译期用到了依赖的具体类,则需要提供一个编译期compile的依赖
重点来了,如何实现不同环境引入不同的依赖?
<profiles>
<profile>
<id>dev</id>
<!-- 默认激活 dev 环境 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<dependencies>
<dependency>
<groupId>xx</groupId>
<artifactId>xx</artifactId>
<version>v1</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
<dependencies>
<dependency>
<groupId>xx</groupId>
<artifactId>xx</artifactId>
<version>v1</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>uat</id>
<properties>
<profiles.active>uat</profiles.active>
</properties>
<dependencies>
<dependency>
<groupId>xx</groupId>
<artifactId>xx</artifactId>
<version>v1</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>deploy<!--表示线上--></id>
<properties>
<profiles.active>deploy</profiles.active>
</properties>
<dependencies>
<dependency>
<groupId>xx</groupId>
<artifactId>xx</artifactId>
<version>v2</version>
</dependency>
</dependencies>
</profile>
</profiles>
可以看到,这样这样再那样就可以了
这样就实现了下线环境
注意:底层是通过maven打包时候的命令来实现的
mvn clean package -U -Denv=dev -Dmaven.test.skip=true -f ./pom.xml -P ${这里就是profile.active的值}
所以选择哪个依赖版本进行打包是maven package的时候决定的
网友评论