springboot-打包pom配置及外部启动shell

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>ics</artifactId>
<groupId>com.dq</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>ics-main</artifactId>
<dependencies>
<dependency>
<groupId>com.dq</groupId>
<artifactId>ics-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dq</groupId>
<artifactId>ics-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dq</groupId>
<artifactId>ics-services</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dq</groupId>
<artifactId>ics-services-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<resources>
<!--包括所有文件-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<!--拷贝conf配置文件-->
<resource>
<directory>deploy/conf</directory>
<includes>
<include>*.properties</include>
<include>logback.xml</include>
</includes>
<targetPath>${project.build.directory}/${parent.artifactId}/conf</targetPath>
<filtering>true</filtering>
</resource>
<!--拷贝bin运行文件-->
<resource>
<directory>deploy/bin</directory>
<includes>
<include>*.sh</include>
</includes>
<targetPath>${project.build.directory}/${parent.artifactId}/bin</targetPath>
<filtering>true</filtering>
</resource>
</resources>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${parent.artifactId}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<excludes>
<exclude>*.properties</exclude>
<exclude>logback.xml</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>jar-package</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${parent.artifactId}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- <plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>-->
</plugins>
</build>

<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>deploy/env/application-dev.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>test</id>
<build>
<filters>
<filter>deploy/env/application-test.properties</filter>
</filters>
</build>
</profile>
</profiles>

</project>

# 启动shell脚本

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
STDOUT_FILE=$BIN_DIR/stdout.log
cd ..
DEPLOY_DIR=`pwd`
DEPLOY_CONF_DIR=$DEPLOY_DIR/conf
DEPLOY_LIBS_DIR=$DEPLOY_DIR/lib/*

SERVER_NAME=`sed '/spring.application.name/!d;s/.*=//' conf/application.properties | tr -d '\r'`
SERVER_PORT=`sed '/server.port/!d;s/.*=//' conf/application.properties | tr -d '\r'`
SERVER_PIDS=`ps -ef | grep java | grep "$DEPLOY_CONF_DIR" | awk '{print $2}'`

if [ -z "$SERVER_NAME" ]; then
SERVER_NAME=`hostname`
fi

if [ -n "$SERVER_PIDS" ]; then
echo "ERROR: The $SERVER_NAME already started!"
echo "PID: $SERVER_PIDS"
exit 1
fi

if [ -n "$SERVER_PORT" ]; then
SERVER_PORT_COUNT=`netstat -tln | grep "$SERVER_PORT" | wc -l`
if [ "$SERVER_PORT_COUNT" -gt 0 ]; then
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
exit 1
fi
fi

LOGS_DIR=log
if [ ! -d "$LOGS_DIR" ]; then
mkdir "$LOGS_DIR"
fi
#STDOUT_FILE=$LOGS_DIR/stdout.log

#ready opts...
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
fi
JAVA_MEM_OPTS=""
BITS=`java -version 2>&1 | grep -i 64-bit`
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -XX:PermSize=128m -Xmn256m -Xss256k
-XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
else
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi

#start service...
BOOT_CLASS="com.dq.ics.IcsApplication"
echo -e "Starting the $SERVER_NAME ...\c"
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -cp $DEPLOY_CONF_DIR:$DEPLOY_LIBS_DIR $BOOT_CLASS > $STDOUT_FILE 2>&1 &
echo "OK!"
SERVER_PIDS=`ps -ef | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
echo "PID: $SERVER_PIDS"
echo "STDOUT: $STDOUT_FILE"




















posted @ 2019-12-27 13:52  开发软件的米良  阅读(333)  评论(0)    收藏  举报