java中的Main函数的直接运行,通常需要写shell脚本,脚本写法都是类似的,maven提供了一个插件可以自动生成shell脚本,插件名称为appassembler-maven-plugin。这里讲讲jsw方式的配置方法,官网例子。这里结合实际使用情况说一下各个配置项的含义。
配置脚本如下:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.10</version> <executions> <execution> <!--执行脚本的id--> <id>generate-jsw-scripts</id> <!--在maven的package阶段执行--> <phase>package</phase> <goals> <goal>generate-daemons</goal> </goals> </execution> </executions> <configuration> <!--打包后生成的目录位置--> <target>${project.build.directory}/assembler</target> <!--是否将配置文件包含到classpath--> <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath> <!--为系统配置文件指定一个目录--> <configurationDirectory>conf</configurationDirectory> <!--源代码中对应的系统配置文件的位置--> <configurationSourceDirectory>src/main/resources</configurationSourceDirectory> <!--是否拷贝源代码中配置文件中的目录--> <copyConfigurationDirectory>true</copyConfigurationDirectory> <!--依赖的lib包的目录格式,flat表示不分目录平铺到lib目录下--> <repositoryLayout>flat</repositoryLayout> <!--依赖的lib包的目录名称--> <repositoryName>lib</repositoryName> <daemons> <daemon> <id>app1</id> <!--系统的入口main函数类--> <mainClass>com.xxx.xxx.xxx.xxx.Main</mainClass> <jvmSettings> <initialMemorySize>256M</initialMemorySize> <maxMemorySize>512M</maxMemorySize> </jvmSettings> <generatorConfigurations> <generatorConfiguration> <generator>jsw</generator> <includes> <include>linux-x86-64</include> <includ>windows-x86-64</includ> </includes> <configuration> <property> <!--手动添加一个系统启动时依赖的第一个classpath,这里通常写为配置文件的目录名,如果不配置,配置文件无法找到--> <name>configuration.directory.in.classpath.first</name> <value>conf</value> </property> <property> <name>wrapper.logfile</name> <value>log/spy-snatch.log</value> </property> </configuration> </generatorConfiguration> </generatorConfigurations> <platforms> <platform>jsw</platform> </platforms> </daemon> </daemons> </configuration> </plugin> </plugins> </build>
最后打包后的目录结构:
bin
conf
lib
logs
启动方法:
/bin/app1 start