最近压测需要把压测的函数打成了 jar 包,然后再 beanshellsampler 里调用。之前做过打包的操作但是记得不是很清晰了,所以就耗费了我两个小时时间。踩了几个坑。
问题 1:
maven 项目打包,未加 maven assembly 插件打出来的包很小。这个当时没观察 jar 包的大小。只是用反编译工具看了一下,发现包里缺少了依赖的包。在 jmeter 运行时提示我找不到依赖的包。后来发现包的大小才 4Kb,一想就是依赖包没打进去。坑爹了。
解决方法:
1、maven 项目里添加插件,打包后放在了 ext 目录下。pom.xml 里加上这个插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>util.Microseer</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
2、然后点击 assembly:assembly 打包。一看包的大小 60 多兆。放在 jmeter 里运行了一下,完美解决。