maven打jar包指定启动的类

本文介绍如何使用Maven的maven-jar-plugin和maven-assembly-plugin插件进行项目打包,详细解释了如何正确配置插件以包含项目依赖,确保生成的Jar文件能够独立运行。

一添加maven-jar-plugin插件,打包不打进依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-jar-pluginartifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>trueaddClasspath>
                        <classpathPrefix>lib/classpathPrefix>
                        <mainClass>LocalmainClass>
                    manifest>
                archive>
            configuration>
        plugin>
    plugins>
build>

二 maven-assembly-plugins插件,打入依赖

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>Local</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

所有依赖的包都会自动解压放到jar文件里的根
### 使用Maven构建工具创建Java项目的JAR文件 当使用Maven作为Java项目的构建工具,可以通过简单的命令完成编译、测试以及打操作。执行`mvn clean package`会清理旧的构建产物并重新编译源码,在此过程中如果配置了单元测试,则这些测试会被运行以验证代码质量[^1]。 对于具体的项目而言,假设该项目定义了一个名为`JavaSamples`的构件ID(`artifactId`),那么最终生成的JAR将会被命名为`JavaSamples.jar`[^2]。为了确保能够成功创建这个JAR文件,POM.xml中的配置至关重要: ```xml <build> <finalName>JavaSamples</finalName> <!-- 插件部分 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <mainClass>com.example.MainApp</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 上述XML片段展示了如何设置`maven-jar-plugin`插件来指定路径,这对于希望直接通过命令行执行JAR的应用程序来说非常有用。需要注意的是,这里假定存在一个位于`com.example`下的`MainApp.java`作为入口点;实际应用中应替换为自己的全限定名(main-class)。 然而,在某些情况下可能会遇到错误提示无法找到唯一的启动。例如,当尝试执行带有Spring Boot特性的重打(repackage)目标,如果有多个候选的主而未明确指出哪一个应该被选用的话就会发生这样的情况[^3]。为了避免此问题的发生,建议在pom.xml里显式声明哪个是主要的应用程序: ```xml <properties> <start-class>com.xx.api.main.ApiBidMain</start-class> </properties> ``` 或者调整spring boot maven plugin 的配置使其仅考虑特定目录下的文件作为潜在的启动器选项之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值