可以利用maven的assembly插件来完成
1、在pom.xml中加入:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<useUniqueVersions>false</useUniqueVersions>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.test.schedule.Starter</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<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>./target/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/resources/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
2、将assembly.xml放在上图黄色路径下(也可放在src/test/resources下):
assembly.xml代码:
<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">
<formats>
<format>tar</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.basedir}\bin</directory>
<outputDirectory>\bin</outputDirectory>
</fileSet>
<fileSet>
<directory>target</directory>
<includes>
<include>${artifactId}-${version}.jar</include>
</includes>
<outputDirectory>\</outputDirectory>
</fileSet>
<fileSet>
<directory>target/lib</directory>
<outputDirectory>/lib</outputDirectory>
</fileSet>
</fileSets>
</assembly>
3、bin目录可选:
startup.sh代码:
#!/bin/bash
export BASEDIR=$(cd `dirname $0`; pwd)/..
nohup java -jar $BASEDIR/test-schedule.jar > /dev/null 2>&1 &
echo $! > ./sync.pid
shutdown.sh代码:
#!/bin/bash
bindir=`dirname $0`
echo $bindir
export bindir
PID=$(cat $bindir/sync.pid)
echo $PID
kill $PID
rm -f $bindir/sync.pid
echo SyncServer shutdown.
exit 0
转载请注明原文地址: https://ju.6miu.com/read-1297610.html