温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用maven将项目的test代码打包进jar中

发布时间:2022-03-08 14:45:35 来源:亿速云 阅读:504 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关怎么使用maven将项目的test代码打包进jar中的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

maven将项目的test代码打包进jar中

项目结构如下

&hellip;/src/main/java/package/** <&ndash; application code

&hellip;/src/test/java/package/** <&ndash; test code

需求

test中有一个包含main方法的主类TestMain.java,将main、test、全部依赖代码打包到一个jar包中,最终能通过java -jar的方式运行TestMain

这里Maven Jar Plugin 、 Maven Shade Plugin 都不是很适用。

我们选择Maven Assembly Plugin来打包

三步

1.在pom中添加如下:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>com.sample.TestMain</mainClass>
                                </manifest>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            ...
        </plugins>
    </build>
    <dependencies>
      ...
    </dependencies>
</project>

2.在resources中添加一个assembly.xml文件

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    <id>fat-tests</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <unpack>true</unpack>
            <scope>test</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/test-classes</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>**/*.class</include>
            </includes>
            <useDefaultExcludes>true</useDefaultExcludes>
        </fileSet>
    </fileSets>
</assembly>

3.运行mvn package

在target目录下会生成一个xxxxx-1.0-SNAPSHOT-assembly.jar的文件,这就是我们需要的jar包了。我们可以用压缩软件看到生成的这个jar包中包含了test中所有的测试类。

可以直接使用java -jar xxxxx-1.0-SNAPSHOT-assembly.jar来运行jar包。主类就是第一步中设置的那个类

怎么使用maven将项目的test代码打包进jar中

参考链接

maven打包跳过test

在pom.xml文件中添加插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
    <skipTests>true</skipTests>
    </configuration>
</plugin>

使用mvn命令 带附加参数

mvn install -Dmaven.test.skip=true

或者

mvn install -DskipTests

感谢各位的阅读!关于“怎么使用maven将项目的test代码打包进jar中”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI