1、部署为jsw pom文件
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.macaitech</groupId>
<artifactId>macaicloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>macaicloud-register</artifactId>
<name>macaicloud-register</name>
<description>注册中心</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<main.class.name>com.macaitech.macaicloud.register.macaicloudRegisterApp</main.class.name>
<deploy.path>macaicloud-register</deploy.path>
<!-- 发布后,部署路径 -->
<app.deploy.path>/data/app</app.deploy.path>
<!-- 替换运行脚本中pid文件目录,确保是绝对路径 -->
<app.pid.replaceString>PIDDIR="$BASEDIR/logs"</app.pid.replaceString>
<app.pid.path>PIDDIR=${app.deploy.path}/${project.name}/logs</app.pid.path>
</properties>
<!-- 环境 -->
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>local</id>
<properties>
<profileActive>local</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
<dependencies>
<!--注册中心-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<build>
<!-- 资源文件处理 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>logback-spring.xml</exclude>
<exclude>mapper/**</exclude>
<exclude>sql/**</exclude>
</excludes>
</resource>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>application-dev.properties</exclude>
<exclude>application-test.properties</exclude>
<exclude>application-local.properties</exclude>
<exclude>application-prod.properties</exclude>
<exclude>application.properties</exclude>
</excludes>
</resource>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>application-${profileActive}.properties</include>
<include>application.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.version}</version>
<executions>
<execution>
<id>default-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.version}</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/target</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- jar 插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>${main.class.name}</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>./</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
</archive>
<includes>
<include>com/**</include>
</includes>
<executions>
<execution>
<phase>clean</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</configuration>
</plugin>
<!--依赖jar拷贝-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>false</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<!-- 生成jsw执行脚本 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<id>make-jsw</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
</execution>
</executions>
<configuration>
<!--lib下直接存放jar,没有路径文件夹(如com/apache),如果没有这个选项则放在lib下的jar包会被com/apache类似的多层文件夹包裹起来-->
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>
<configurationDirectory>conf</configurationDirectory>
<configurationSourceDirectory>target/classes</configurationSourceDirectory>
<copyConfigurationDirectory>false</copyConfigurationDirectory>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<useWildcardClassPath>true</useWildcardClassPath>
<!--生成的项目的目录位置,这里的client是项目的名称,你可以根据你的需要自己随便命名-->
<target>${project.build.directory}</target>
<binFileExtensions>
<unix>.sh</unix>
</binFileExtensions>
<!--
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
-->
<daemons>
<daemon>
<id>${project.name}</id>
<platforms>
<platform>jsw</platform>
</platforms>
<mainClass>${main.class.name}</mainClass>
<generatorConfigurations>
<generatorConfiguration>
<generator>jsw</generator>
<includes>
<include>linux-x86-64</include>
<!--
<include>windows-x86-64</include>
<include>macosx-universal-64</include>
-->
</includes>
<configuration>
<property>
<name>configuration.directory.in.classpath.first</name>
<value>conf</value>
</property>
<property>
<name>wrapper.console.loglevel</name>
<value>ERROR</value>
</property>
<property>
<name>wrapper.logfile.loglevel</name>
<value>ERROR</value>
</property>
<property>
<name>wrapper.logfile</name>
<value>logs/wrapper.log</value>
</property>
<property>
<name>wrapper.logfile.format</name>
<value>M</value>
</property>
<property>
<name>wrapper.logfile.maxsize</name>
<value>10m</value>
</property>
<property>
<name>wrapper.logfile.maxfiles</name>
<value>5</value>
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
<jvmSettings>
<extraArguments>
<extraArgument>-Xrs</extraArgument>
<extraArgument>-server</extraArgument>
<extraArgument>-Xmx2G</extraArgument>
<extraArgument>-Xms512M</extraArgument>
</extraArguments>
</jvmSettings>
</daemon>
</daemons>
</configuration>
</plugin>
<!-- 拷贝配置文件 -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!--
<mkdir dir="${project.build.directory}/jsw/${project.name}/conf"/>
-->
<mkdir dir="${project.build.directory}/jsw/${project.name}/logs"/>
<copy todir="${project.build.directory}/jsw/${project.name}/conf" overwrite="true" >
<fileset dir="${project.build.directory}/classes" erroronmissingdir="false">
<!--
<include name="*.yml"/>
<include name="*.xml"/>
<include name="*.properties"/>
-->
<exclude name="com/**"/>
<exclude name="sql/**"/>
<exclude name="env/**"/>
</fileset>
</copy>
<delete file="${project.build.directory}/${project.name}.tar"/>
<tar destfile="${project.build.directory}/${project.name}.tar" basedir="${project.build.directory}/jsw"/>
<replace file ="${project.build.directory}/jsw/${project.name}/bin/${project.name}" token="${app.pid.replaceString}" value="${app.pid.path}" />
<!--
<gzip destfile="${project.build.directory}/${project.name}.tar.gz" src="${project.build.directory}/${project.name}.tar"/>
-->
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
2、部署到tomcat下的pom文件
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.macaitech</groupId>
<artifactId>macaitech-push</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>macaitech-push-server</artifactId>
<name>macaitech-push-server</name>
<description>推送服务端</description>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>local</id>
<properties>
<profileActive>local</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>1.7.17</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId>
<version>1.0.0</version>
</dependency>
<!-- for deploy to tomcat start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- for deploy to tomcat end -->
</dependencies>
<build>
<filters>
<filter>src/main/resources/env/application-${profileActive}.properties</filter>
</filters>
<!-- 资源文件处理 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>logback-spring.xml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.version}</version>
<executions>
<execution>
<id>default-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>env/**</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include name="*.xml"/>
<include name="*.properties"/>
<include name="*.json"/>
<include name="*.txt"/>
<include name="mapper/*.xml"/>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.version}</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/target</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>${maven.version}</version>
</plugin>
</plugins>
</build>
</project>