maven配置文件

1. 阿里云中央仓库

添加代码到project节点下

<!-- 阿里云Maven中央仓库(项目本身从阿里云仓库下载jar) -->
    <repositories>
        <repository>
            <id>maven-ali</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public//</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>
    <!-- 配置Maven插件的远程仓库 (比如打包mvn clean install 从阿里云仓库下载jar)-->
    <pluginRepositories>
        <pluginRepository>
            <id>maven-ali</id>
            <name>aliyun nexus</name>
            <url>>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>

2.配置环境变量

添加代码到project节点下

<!-- 配置环境 -->
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <active.profile>dev</active.profile>
                <mysql.host>127.0.0.1</mysql.host>
                <mysql.port>3306</mysql.port>
                <mysql.username>root</mysql.username>
                <mysql.password>123456</mysql.password>
                <redis.host>127.0.0.1</redis.host>
                <redis.port>6379</redis.port>
                <redis.password></redis.password>
                <redis.database>14</redis.database>
            </properties>
            <!-- 默认使用当前环境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <active.profile>pro</active.profile>
                <mysql.host>127.0.0.1</mysql.host>
                <mysql.port>9572</mysql.port>
                <mysql.username>root</mysql.username>
                <mysql.password>yiyuewseven@.</mysql.password>
                <redis.host>127.0.0.1</redis.host>
                <redis.port>6379</redis.port>
                <redis.password>123456</redis.password>
                <redis.database>14</redis.database>
            </properties>
        </profile>
    </profiles>

在yml文件中使用变量

application.yml

spring:
  application:
    name: yiyue_wuye_manage
  profiles:
    active: ${active.profile}

application-dev.yml 中使用变量

spring:
  datasource:
    name: property-management
    url: jdbc:mysql://@mysql.host@:@mysql.port@/yiyue_wuye_manage?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: @mysql.username@
    password: @mysql.password@
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      maximum-pool-size: 200
      minimum-idle: 10
      auto-commit: false
      connection-timeout: 30000
      idle-timeout: 25000
      login-timeout: 5
      max-lifetime: 30000
      read-only: false
      validation-timeout: 3000
      data-source-properties:
        cachePrepStmts: true
        prepStmtCacheSize: 250
        prepStmtCacheSqlLimit: 2048
        useServerPrepStmts: true
        useLocalSessionState: true
        rewriteBatchedStatements: true
        cacheResultSetMetadata: true
        cacheServerConfiguration: true
        elideSetAutoCommits: true
        maintainTimeStats: false
        

redis:
    host: @redis.host@
    database: @redis.database@
    password: @redis.password@
    port: @redis.port@
    timeout: 15000ms
    # Lettuce 是一个可伸缩线程安全的 Redis 客户端,多个线程可以共享同一个 RedisConnection,它利用优秀 netty NIO 框架来高效地管理多个连接
    lettuce:
      pool:
        # 连接池中的最大空闲连接
        max-active: 8
        # 连接池中的最小空闲连接
        max-idle: 8
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
        # 连接池中的最小空闲连接
        min-idle: 0

3.多模块打包

3.1当多个模块文件打包,默认maven打包插件到pom.xml

<build>
    <finalName>yiyue_wuye_manager_server</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
</build>

3.2当一个模块依赖另一个模块,打包时需要将编译的类一起打包

<build>
        <finalName>app_name</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            
        </plugins>
        <resources>
            <resource>
                <!-- 配置文件路径对应项目存放配置文件的目录 -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.yml</include>
                    <include>application-${active.profile}.yml</include>
                </includes>
            </resource>
            <!-- 指定资源文件 -->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
    </build>

3.3当需要跳过测试,在plugins节点中加入

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>


版权声明:本文为liyun_jz原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。