针对 Myeclipse 中的maven 项目打包作如下说明:
1、通过 MyEclipse 中的maven 插件 点击右键执行 maven相关命令时
报错:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94) at sun.net.www.http.PosterOutputStream.write(PosterOutputStream.java:61) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
解决方案也很简单从Intalled JREs里修改;window->Preferences->Java->Installed JREs,选择当前的JRE,然后edit它;在新窗口里设置Default VM Arguments为 -Xms512M -Xmx1024M即可。
2、在CMD窗口中,通过maven命令打包(mvn clean package)报错时:OutOfMemoryError: Java heap space
修改 mvn.bat 文件,
在 @REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
位置下方追加:
set MAVEN_OPTS= -Xms512m -Xmx1024m
3、通过maven 的插件 maven-assembly-plugin 打包实现自定义文件压缩包文件压缩。
在pom.xml文件中追加
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<war.name>loan-1.0.0</war.name> </properties>
<plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>make-zip</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>zip.xml</descriptor> </descriptors> <meminitial>512m</meminitial> <maxmem>1024m</maxmem> </configuration> </plugin>
其中 zip.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">
<id>package</id>
<formats><!-- 打包压缩为 *.tar.gz 过滤了相关配置文件信息-->
<format>tar.gz</format></formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets><!-- 复制 jsp -->
<fileSet><directory>target/${war.name}</directory>
<excludes> <exclude>common/StaticJavascript.jsp</exclude>
<exclude>WEB-INF\web.xml</exclude>
<exclude>WEB-INF\classes\**</exclude>
</excludes>
<outputDirectory>/</outputDirectory> </fileSet>
<!-- 复制 指定的class -->
<fileSet><directory>target/${war.name}/WEB-INF/classes/com</directory>
<outputDirectory>WEB-INF/classes/com</outputDirectory></fileSet></fileSets>
</assembly>
最后,通过maven 打包即可生成loan-1.0.0.tar.gz.tar.gz压缩包。
在linux 测试环境 中执行解压命令 即可覆盖测试环境中的部署应用包。
参考命令为:tar -zxvf loan-1.0.0.tar.gz -C /home/jyapp/loan