利用Mavenappassembler-maven-plugin插件,就可以实现自动打包可运行的脚本。

首先在pom.xml文件的build节点下配置插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.1.1</version>
    <configuration>
    <repositoryLayout>flat</repositoryLayout>
    <repositoryName>lib</repositoryName>
    <configurationSourceDirectory>src/main/resources/conf</configurationSourceDirectory>
    <!-- Set the target configuration directory to be used in the bin scripts -->
    <configurationDirectory>conf</configurationDirectory>
    <!-- Copy the contents from &quot;/src/main/config&quot; to the target configuration
    directory in the assembled application -->
    <copyConfigurationDirectory>true</copyConfigurationDirectory>
    <!-- Include the target configuration directory in the beginning of
        the classpath declaration in the bin scripts -->
    <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
    <!-- prefix all bin files with &quot;mycompany&quot; -->
    <binPrefix>startup</binPrefix>
    <!-- set alternative assemble directory -->
    <assembleDirectory>${project.build.directory}/server</assembleDirectory>
    <!-- Extra JVM arguments that will be included in the bin scripts -->
    <extraJvmArguments>-Xms768m -Xmx768m -XX:PermSize=128m
                        -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m
    </extraJvmArguments>
    <!-- Generate bin scripts for windows and unix pr default -->
    <platforms>
    <platform>windows</platform>
    <platform>unix</platform>
    </platforms>
    <programs>
    <program>
    <!-- Set to start the main method of class -->
    <mainClass>com.coderli.onecoder.server.HypervisorServer</mainClass>
    <name>startup</name>
    </program>
    </programs>
    </configuration>
</plugin>

package appassembler:assemble

wKioL1e706vRsNvRAADPIDIcBQI813.jpg-wh_50

然后执行run,一个可执行的脚本文件就生成好了。startup.bat是windows下。