接上文使用maven 插件生成liunx的restart脚本:
<build>
<resources>
<resource>
<directory>src/main/config</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<repositoryLayout>flat</repositoryLayout>
<configurationDirectory>etc</configurationDirectory>
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<repositoryName>lib</repositoryName>
<useWildcardClassPath>true</useWildcardClassPath>
<filterConfigurationDirectory>true</filterConfigurationDirectory>
<daemons>
<daemon>
<id>HardwareErpApplication</id>
<mainClass>com.it.HardwareErpApplication</mainClass>
<platforms>
<platform>jsw</platform>
</platforms>
<jvmSettings>
<initialMemorySize>256M</initialMemorySize>
<maxMemorySize>256M</maxMemorySize>
</jvmSettings>
<generatorConfigurations>
<generatorConfiguration>
<generator>jsw</generator>
<includes>
<include>windows-x86-32</include>
<include>windows-x86-64</include>
<include>linux-x86-32</include>
<include>linux-x86-64</include>
<include>macosx-universal-64</include>
</includes>
<configuration>
<property>
<name>configuration.directory.in.classpath.first</name>
<value>${basedir}/etc</value>
</property>
<property>
<name>run.as.user.envvar</name>
<value>root</value>
</property>
<property>
<name>wrapper.pidfile</name>
<value>${basedir}/pid</value>
</property>
<property>
<name>wrapper.logfile.maxsize</name>
<value>10m</value>
</property>
<property>
<name>wrapper.logfile.maxfiles</name>
<value>1</value>
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
</daemon>
</daemons>
</configuration>
<executions>
<execution>
<id>generate-jsw-scripts</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.it.HardwareErpApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
使用 cd 到根目录 mvn clean package -DskipTests
生成后目录如下
linux部署如下:
将最后一级目录ex-xxx
上传linux cd到bin目录 xxxx start xxx restart
注意:设置文件夹权限:chmod 777 文件名
chmod 750 文件名 看自己需要
若使用windows上传的文件请修改文件为unix格式
# 打开文件
vi test.sh
# 查看原格式
:set ff
fileformat=dos
# 修改编码格式
:set ff=unix
# 保存退出
:wq
windows下部署运行:
cmd 直接在jsw的bin 下 xxx install 后 xxx start
这里会生成一个pid文件如下:
注意错误:
1、xxx start 可能会报错
找不到C:\Windows\System32\config\systemprofile\AppData\Local\Temp
这里虚拟机需要写入pid零时文件,存放jvm进程信息,如果没有pid无法写入你配置的文件路劲。
你需要创建一个Temp 文件这个文件在你重新 xxx start 后会生成如下:
jvm运行时会生成一个目录hsperfdata_
U
S
E
R
(
USER(
USER(USER是启动java进程的用户),在linux中默认是/tmp,目录下会有些 pid文件,存放jvm进程信息,而jmap,jstack等工具会读取/tmp/hsperfdata_$USER下的pid文件获取连接信息.
2、 xxx install 这个将你的项目名字
注册成一个服务,如过后面修改文件名会找不到服务,导致找不到服务需要使用 xxx remove 停止这个服务后在windows黑窗口使用 sc delete 服务名称
删除服务后重新安装 重新xxx start 就能找到服务
关于org.codehaus.mojo插件请参考
https://www.pkslow.com/archives/codehaus-mojo-exec-maven-plugin