local_repo > settings_file_repo > pom_file_activate_profile_repository > pom_file_repository > settings_mirror > central
本地仓库 > 激活的配置( setting.xml 中)> 激活的配置中的仓库( pom.xml 中)> 声明的仓库( pom.xml 中)> 镜像( setting.xml 中)> 中心仓库
<project>
优先级第三:pom_file_activate_profile_repository
<profiles>
<profile>
<id>idid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<repositories>
<repository>
<id>aliyunid>
<name>aliyun Repositoryname>
<url>https://maven.aliyun.com/repository/publicurl>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
profile>
profiles>
优先级第四:pom_file_repository
<repositories>
<repository>
<id>aliyunid>
<name>aliyun Repositoryname>
<url>https://maven.aliyun.com/repository/publicurl>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
project>
阿里云官网
<mirrors>
<mirror>
<id>aliyunmavenid>
<mirrorOf>centralmirrorOf>
<name>阿里云公共仓库name>
<url>https://maven.aliyun.com/repository/publicurl>
mirror>
mirrors>
*
改为 central
,因为 *
号会使我们项目里面定义的 repositry_id 失效。*
代表所有 repository_id 全部都会被镜像到阿里云,包括我们的私服!external:*
:本地、包括 installed 的依赖项都不会去找镜像)repo_id
":所有该 id 的仓库都会被镜像*,!repo_id
:!代表除该仓库以外都被镜像,逗号可以连接多个常见:
不同 jar 包可能存在全限定名相同的类,可以使用 maven 的 enforce 插件来进行排查
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-enforcer-pluginartifactId>
<version>1.4.1version>
plugin>
使用命令:
mvn clean package enforce:enforce
<build>
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
build>
project:
version: @project.version@
project.version=${project.version}
实例: 在 maven 中获取编译时间戳
<properties>
<timestamp>${maven.build.timestamp}timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ssmaven.build.timestamp.format>
properties>
# yaml
build:
time: @timestamp@
# properties
build.time=${timestamp}
user:
user-name: ${username}
age: ${age}
System.setProperty("username", "张三");
System.setProperty("age", "10");
option + shift + F10
0
ctrl + option + e
.env
文件 (推荐).env
文件一般用于存储项目的环境变量, 通常的框架都有方法来支持 .env
文件的加载配置, 如 vue 项目.# properties格式
USERNAME=username
PASSWORD=password
# 必须 import
spring:
config:
# 三选一
import: optional:file:.env[.properties] # 根路径
import: optional:classpath:.env[.properties] # resource路径
import: optional:classpath:.env[.yaml] # resource路径 + yaml方式读取 (不能混用properties格式)
user:
# 必须加花括号
username: ${USERNAME}
password: ${PASSWORD}
# 花括号方式同样可以引用配置的其他变量
param1: arg1
param2: ${param1} # param2 = arg1
# 注意别和 profiles.include 搞混了
spring:
profiles:
include: dev,datasource
.gitignore
文件中忽略 .env在springboot的配置文件转成docker中使用的.env文件, 使用下划线:
logging:
level:
root: warn
com.csdn: debug
com.csdn.mapper: warn
com.csdn.service.ServerApp: info
.env
:# 转化为:
# 修改日志的root级别
LOGGING_LEVEL_root=info
# 修改ServerApp类的输出级别
LOGGING_LEVEL_com.csdn.service.ServerApp=debug
# 或者下面的写法
#logging.level.com.csdn.service.ServerApp=debug