在 Maven-shade-plugin 创建的 Jar 中包含测试类,可以通过在 Maven 项目的 pom.xml
文件中添加 shadeTest
插件来实现。shadeTest
插件可以将在 src/test/java
目录下的测试类打包到生成的 JAR 文件中。
具体实现步骤如下:
pom.xml
文件中添加 shadeTest
插件,如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.example.TestClass</Main-Class>
<Class-Path>.</Class-Path>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
在上述代码中,<plugin>
标签指定使用 maven-shade-plugin
来创建包含测试类的 JAR 文件,<configuration>
标签指定生成 JAR 文件的名称、版本等信息,<transformers>
标签指定将测试类打包到 JAR 文件中的转换规则。
java -jar
命令运行 JAR 文件,如下所示:
public class TestClass {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
在上述代码中,TestClass
定义了一个 main
方法,可以在运行时输出 "Hello, world!"。使用 java -jar
命令运行 JAR 文件时,会自动调用 main
方法。
如果需要在其他环境下运行测试类,可以将 main
方法的访问修饰符改为 public
,并且手动创建 java
命令的参数列表,然后运行命令。例如:
public class TestClass {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
在上述代码中,将 main
方法的访问修饰符改为 public
,以便在运行时可以被找到。然后,在命令行中输入以下命令来运行测试类:
java -cp target/my-test-jar.jar com.example.TestClass
在上述命令中,-cp
参数指定了运行时所需的类路径,com.example.TestClass
指定了要运行的测试类。
以上就是在 Maven-shade-plugin 的 JAR 中包含测试类的方法。
领取专属 10元无门槛券
手把手带您无忧上云