用Maven自动生成带有sh和bat启动脚本的java应用
java做web开发,导致很多人不知道使用Java如何开发普通的项目,这里我们做个简单的介绍。java项目一般都是使用脚本启动,比如windows上的bat文件和linux上的sh文件,而要写这些文件常常需要花费不少精力,很多人肯能会改这种文件,但是要凭空写一个就比较费劲。现在有maven插件帮我们解决这个问题,效果也是不要不要的,具体步骤如下:第一步:使用maven自带骨架maven-arc
·
java做web开发,导致很多人不知道使用Java如何开发普通的项目,这里我们做个简单的介绍。 java项目一般都是使用脚本启动,比如windows上的bat文件和linux上的sh文件,而要写这些文件常常需要花费不少精力,很多人肯能会改这种文件,但是要凭空写一个就比较费劲。现在有maven插件帮我们解决这个问题,效果也是不要不要的,具体步骤如下: 第一步:使用maven自带骨架maven-archetype-quickstart生成一个普通的java项目; 第二步:在pom文件中增加以下配置:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<configuration>
<!--lib下直接存放jar,没有路径文件夹(如com/apache),如果没有这个选项则放在lib下的jar包会被com/apache类似的多层文件夹包裹起来-->
<repositoryLayout>flat</repositoryLayout>
<configurationDirectory>conf</configurationDirectory>
<configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<!--生成的项目的目录位置,这里的client是项目的名称,你可以根据你的需要自己随便命名-->
<assembleDirectory>${project.build.directory}/client</assembleDirectory>
<!--java启动参数-->
<extraJvmArguments>-Xms128m</extraJvmArguments>
<binFileExtensions>
<unix>.sh</unix>
</binFileExtensions>
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<repositoryName>lib</repositoryName>
<programs>
<program>
<!--指定主类,脚本名。会生成shell/bat两种类型,也可用platforms指定运行平台-->
<mainClass>com.test.App</mainClass>
<!-- 生成的脚本文件的名称,比如start.sh,你也可以根据你的需要命名成其他名字 -->
<name>start</name>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
这里项目依赖的组件......
</dependencies>
第三步:使用mvn clean package appassembler:assemble打包(在eclipse里可以在Run Configurations中的图形界面中配置打包命令,这个自己查,我这里不赘述),打好的包格式如图:
可以看到自动生成了启动脚本文件,被依赖的jar包放在项目的lib下。
第四步:将项目复制到其他地方,windows下使用cmd打开命令行,然后将start文件拖到命令行执行,linux下可以使用nohup ./start.sh &的方式启动,最后的&是表示项目以后台进程的方式启动,否则你关闭命令行,则系统自动退出;
到这里就介绍完了,另外需要注意的是:
1、如果pom文件中增加了新的依赖,或者减少的新的依赖,则需要重新使用第三步的命令打包,否则新加入的jar包无法引入到项目的classpath下,我们打开start.bat或者start.sh文件就可以看到,命令把每个jar包都加入到classpath下。
2、linux和windows下的启动文件虽然类似,但是语法细节严重不同,在修改时一定要注意。
原文地址:http://blog.csdn.net/achilles12345/article/details/52150867
更多推荐
已为社区贡献1条内容
所有评论(0)