maven打造多模块spring boot项目

parent pom

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.stone.demo</groupId>
    <artifactId>demo-parent</artifactId>
    <version>1.1.1</version>
    <packaging>pom</packaging>
    <modules>
        <module>demo-service</module>
        <module>demo-base</module>
        <module>demo-common</module>
        <module>demo-domain</module>
    </modules>
    <properties>
        <!-- 文件拷贝时的编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- maven编译时的编码 -->
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <!-- maven编译插件版本 -->
        <maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
        <!-- maven打包插件版本 -->
        <maven.assembly.plugin.version>3.0.0</maven.assembly.plugin.version>
        <!-- jdk版本 -->
        <java.version>1.7</java.version>
        <!-- spring cloud版本 -->
        <spring.cloud.version>Camden.RELEASE</spring.cloud.version>
        <!-- spring boot版本 -->
        <spring.boot.version>1.3.8.RELEASE</spring.boot.version>
        <mybatis.spring.boot>1.1.1</mybatis.spring.boot>
        <mysql.connector.java>5.1.38</mysql.connector.java>
        <com.alibaba.druid>1.0.18</com.alibaba.druid>
        <com.alibaba.fastjson.version>1.2.29</com.alibaba.fastjson.version>
        <mybatis.pagehelper.version>4.0.1</mybatis.pagehelper.version>
        <!-- activit -->
        <activiti.version>5.22.0</activiti.version>
        <http.client.version>1.9.15</http.client.version>
        <jdom.version>2.0.5</jdom.version>
        <commons-io.version>2.5</commons-io.version>
        <client.util.version>1.0.3</client.util.version>
        <logging.version>1.2</logging.version>
        <scheduler.version>2.2.1</scheduler.version>
        <httpcomponents.httpclient.version>4.4.1</httpcomponents.httpclient.version>
        <mail.version>1.5.2</mail.version>
        <commons.codec.version>1.9</commons.codec.version>
        <springsource.commons.collections.version>3.2.0</springsource.commons.collections.version>
        <!-- activity uuid -->
        <com.fasterxml.uuid.generator.version>3.1.0</com.fasterxml.uuid.generator.version>
        <beanutils.version>1.9.2</beanutils.version>
        <demo.sdk.version>1.1.1</demo.sdk.version>
        <junit.version>4.12</junit.version>
        <powermock.version>1.6.6</powermock.version>
        <springbootstartertest.version>1.5.2.RELEASE</springbootstartertest.version>
        <spring-boot-starter-web.version>1.5.2.RELEASE</spring-boot-starter-web.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>4.3.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.2</version>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.4.2</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.0</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>${maven.assembly.plugin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring.boot}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${com.alibaba.fastjson.version}</version>
            </dependency>
            <!-- demo -->
            <dependency>
                <groupId>com.stone.demo</groupId>
                <artifactId>demo-common</artifactId>
                <version>${demo.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.stone.demo</groupId>
                <artifactId>demo-base</artifactId>
                <version>${demo.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.stone.demo</groupId>
                <artifactId>demo-domain</artifactId>
                <version>${demo.sdk.version}</version>
            </dependency>
            <!-- mysql 驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.connector.java}</version>
            </dependency>
            <!-- 数据库连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${com.alibaba.druid}</version>
            </dependency>
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>${mybatis.pagehelper.version}</version>
            </dependency>
            <dependency>
                <groupId>com.ning</groupId>
                <artifactId>async-http-client</artifactId>
                <version>${http.client.version}</version>
            </dependency>
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.25-incubating</version>
            </dependency>
            <!-- activiti工作流jar包 -->
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-engine</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-explorer</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-modeler</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-diagram-rest</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-simple-workflow</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-rest</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-json-converter</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-bpmn-converter</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jdom</groupId>
                <artifactId>jdom2</artifactId>
                <version>${jdom.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${beanutils.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${logging.version}</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>${scheduler.version}</version>
            </dependency>
            <!-- 解决编译问题 -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpcomponents.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>${httpcomponents.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>${mail.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons.codec.version}</version>
            </dependency>
            <!-- activity uuid -->
            <dependency>
                <groupId>com.fasterxml.uuid</groupId>
                <artifactId>java-uuid-generator</artifactId>
                <version>${com.fasterxml.uuid.generator.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!--发布 -->
    <distributionManagement>
        <repository>
            <id>thirdparty</id>
            <name>thirdparty</name>
            <url>http://host:port/nexus/content/repositories/thirdparty/</url>
        </repository>
    </distributionManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${maven.compiler.encoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>




module pom

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>activiti-service</artifactId>
    <parent>
        <groupId>com.stone.demo</groupId>
        <artifactId>demo-parent</artifactId>
        <version>1.1.1</version>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- activiti begin -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>commons-dbcp</artifactId>
                    <groupId>commons-dbcp</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-explorer</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>vaadin</artifactId>
                    <groupId>com.vaadin</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>dcharts-widget</artifactId>
                    <groupId>org.vaadin.addons</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>activiti-simple-workflow</artifactId>
                    <groupId>org.activiti</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-json-converter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-modeler</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-converter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-diagram-rest</artifactId>
        </dependency>
        <!-- activiti end -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!-- <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-annotations</artifactId>  
            <version>2.6.7</version>  
        </dependency>  
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-core</artifactId>  
            <version>2.6.7</version>  
        </dependency>  
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-databind</artifactId>  
            <version>2.6.7</version>  
        </dependency> -->
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>com.stone.demo</groupId>
            <artifactId>demo-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom2</artifactId>
        </dependency>
        <!-- activity uuid -->
        <dependency>
            <groupId>com.fasterxml.uuid</groupId>
            <artifactId>java-uuid-generator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.stone.basecloud.cloudsoa</groupId>
            <artifactId>cloudsoa-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>com/**/*.*</include>
                </includes>
                <excludes>
                    <exclude>config/**/*.*</exclude>
                    <exclude>config/*.*</exclude>
                    <exclude>*.xml</exclude>
                    <exclude>*.properties</exclude>
                    <exclude>*.json</exclude>
                </excludes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>


assembly xml

<?xml version="1.0"?>
<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
    <id>package</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>src/main/bin</directory>
            <outputDirectory>bin</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/main/resources/config</directory>
            <outputDirectory>config</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/main/logs</directory>
            <outputDirectory>logs</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>




maven setting

<?xml version="1.0" encoding="utf-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:\MavenHome</localRepository>
    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <servers>
        <server>
            <id>thirdparty</id>
            <username>dev</username>
            <password>dev</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>dev</username>
            <password>dev</password>
        </server>
    </servers>
    <mirrors>
        <mirror>
            <id>central-repository</id>
            <name>Central Repository Manager</name>
            <url>http://host:port/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
    <!--profiles-->
    <profiles>
        <profile>
            <id>open-gateway</id>
            <!--repositories-->
            <repositories>
                <repository>
                    <id>demo-maven-proxy</id>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <!--                                    <updatePolicy>never</updatePolicy>
                                        <checksumPolicy>ignore</checksumPolicy> -->
                    </snapshots>
                    <url>http://host:port/nexus/content/groups/public/</url>
                </repository>
                <repository>
                    <id>thirdparty</id>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <url>http://host:port/nexus/content/repositories/thirdparty/</url>
                </repository>
                <repository>
                    <id>snapshots</id>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <url>http://host:port/nexus/content/repositories/snapshots/</url>
                </repository>
            </repositories>
            <!--pluginRepositories-->
            <pluginRepositories>
                <pluginRepository>
                    <id>demo-plugin-proxy</id>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <!-- <updatePolicy>never</updatePolicy> -->
                    </snapshots>
                    <url>http://host:port/nexus/content/groups/public/</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <!--activeProfiles> -->
    <activeProfiles>
        <activeProfile>open-gateway</activeProfile>
    </activeProfiles>
</settings>




server.sh

#!/bin/sh

MAIN_CLASS=com.stone.demo.service.demo.Application
JVM_ARGS="-server -Xmx512m -Xms512m -Xmn200m -XX:PermSize=256m -XX:MaxPermSize=512m"

basepath=$(cd `dirname $0`/../; pwd)
echo "basepath="$basepath

##HOMES
LIB_HOME=$basepath/lib
CONF_HOME=$basepath/config
CLASSPATH_HOME=$basepath
LOG_HOME=$basepath/logs
CLASSPATH=$LIB_HOME:$CLASSPATH_HOME:$CONF_HOME



## files loading

for jar in $LIB_HOME/*.jar
do      CLASSPATH=$CLASSPATH:$jar
done
for xml in $CONF_HOME/*.xml
do      CLASSPATH=$CLASSPATH:$xml
done
for json in $CONF_HOME/*.json
do      CLASSPATH=$CLASSPATH:$json
done
for env in $CONF_HOME/*.properties
do      CLASSPATH=$CLASSPATH:$env
done

export CLASSPATH 

start(){
	if [ -f "$LOG_HOME/server.pid" ] ; then
	echo "############ Application of '"$MAIN_CLASS"'  was running already!############" 
	else
	cd $LIB_HOME
	echo "############'"$MAIN_CLASS"' starting....############" 
	echo $CLASSPATH
	#nohup java $JVM_ARGS  -cp $CLASSPATH $MAIN_CLASS  > $LOG_HOME/server_`date '+%Y-%m-%d'`.log 2>&1 &
    nohup java $JVM_ARGS -cp $CLASSPATH $MAIN_CLASS  > /dev/null 2>&1 &
    echo $! > $LOG_HOME/server.pid
	echo "########### Application of '"$MAIN_CLASS"' started successful at:"`date '+%Y-%m-%d %T'`"############"
	#tail -f $LOG_HOME/server_`date '+%Y-%m-%d'`.log
	fi
}

stop(){
  if [ -f "$LOG_HOME/server.pid" ] ; then
  echo "############ Application of '"$MAIN_CLASS" stoping....############"	
  kill -9 `cat $LOG_HOME/server.pid`
  sleep 1
  rm -rf $LOG_HOME/server.pid
  echo "########### Application of '"$MAIN_CLASS"' was stoped at:"`date '+%Y-%m-%d %T'`"############"
  else
   echo "########### Application of '"$MAIN_CLASS"' is not running. ############"
   fi;
}

case $1 in
 "-s" | "--start")
	start;
    ;;
  "-h" | "--stop")
	stop;
    ;;
  "-r" | "-- restart")
	echo "############ Application of '"$MAIN_CLASS"' restarting....############"
    stop;
    sleep 1
    start;
    ;;
  *)
    echo "Usage: server.sh {[--start,-s]|[--stop,-h]|[--restart,-r]}" 
    ;;
esac
exit 0


application.properties

spring.application.name=demo-service
server.port=9001

#########################DB配置--begin##################################
# 驱动配置信息  
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://192.168.1.5:3306/demo?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
   
#连接池的配置信息  
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
#########################DB配置--end####################################


# 配置服务注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

security.basic.enabled=false


#########################日志配置--begin##################################
#日志配置文件的路径,本机改为"classpath:config/logback-spring.xml"
logging.config=classpath:config/logback-spring.xml
##########################日志配置--end####################################

eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}

#超时时间(默认1000ms,单位:ms)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=30000
ribbon.ReadTimeout=30000
ribbon.ConnectTimeout=30000


logback-spring.xml

<?xml version="1.0" encoding="utf-8"?>
<configuration scan="true" sacnPeriod="60 seconds" debug="false">
    <!-- 日志目录 -->
    <property name="LOG_HOME" value="/opt/services/demo-service/logs" />
    <property name="applicationType" value="omp" />
    <property name="serverName" value="demo" />
    <property name="IP" value="192.168.1.2" />
    <property name="threadName" value="demo" />
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
    </appender>
    <appender name="FILEDEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/debug/${applicationType}_${serverName}_${IP}_${threadName}_debug_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>31</maxHistory>
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/info/${applicationType}_${serverName}_${IP}_${threadName}_info_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>31</maxHistory>
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/warn/${applicationType}_${serverName}_${IP}_${threadName}_warn_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>31</maxHistory>
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/error/${applicationType}_${serverName}_${IP}_${threadName}_error_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>31</maxHistory>
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <logger name="org.springframework" level="WARN" />
    <logger name="org.mybatis" level="WARN" />
    <logger name="org.hibernate" level="WARN" />
    <logger name="org.apache" level="WARN" />
    <logger name="com.netflix" level="WARN" />
    <logger name="springfox.documentation" level="WARN" />
    <logger name="com.ulisesbocchio" level="WARN" />
    <logger name="com.stone" level="INFO" />
    <!-- 日志输出级别 -->
    <!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
    <root level="INFO">
        <appender-ref ref="FILEDEBUG" />
        <appender-ref ref="FILEINFO" />
        <appender-ref ref="FILEWARN" />
        <appender-ref ref="FILEERROR" />
        <!-- 生产环境将请stdout去掉 -->
        <!-- <appender-ref ref="STDOUT" /> -->
    </root>
</configuration>




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值