阿里中央仓库
由于默认的中央仓库,服务器在国外,下载速度很慢,但我们可以使用阿里的中央仓库,亲测速度超快。我们只需在maven根目录下的conf文件夹中的setting.xml文件的mirrors节点,添加内容如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
maven多环境
maven借助profile实现多环境,通过不同的环境激活不同的profile来达到构建的可移植性。笔者有两个环境dev、test,项目目录结构:
如上图,在项目根路径新建目录filters/dev、filters/test,并在dev、test分别新建文件config.properties文件;
1、配置config.properties文件
dev下的config.properties:
env=dev
test下的config.properties:
env=test
在src/resources/config新建文件config.properties,内容为:
env=${env}
${}中的名称必须是env不能是env1或者其它。
2、配置resources
<resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource>
通过指定filtering表示includes节点配置的文件都将通过maven的过滤进行变量值的替换。
3、配置filter
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <filters> <filter>${basedir}/filters/dev/config.properties</filter> </filters> </build> </profile> <profile> <id>test</id> <build> <filters> <filter>${basedir}/filters/dev/config.properties</filter> </filters> </build> </profile> </profiles>
通过filter,我们可以将不同环境目录下的config.properties文件中的参数值加载到maven中,如果filters中可以添加有多个filter,即可以添加多个properties文件。
4、通过命令进行打包
mvn clean compile -Pdev
通过-P指定打包环境,如果不指定则打包的环境默认是dev
5、扩展
除了filters定义多环境,我们还可以通过节点properties定义不同环境的变量,我们使用如下方法可以定义env:
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <env>test</env> </properties> </profile> </profiles>
但filters与properties也可以一起使用,定义不同的变量。
转自:https://www.toutiao.com/a6671540160582124044/