最近压测需要把压测的函数打成了 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 里运行了一下,完美解决。


↙↙↙阅读原文可查看相关链接,并与作者交流