首页 > 其他分享 >各种Maven打包

各种Maven打包

时间:2022-11-17 15:02:57浏览次数:72  
标签:插件 各种 jar 如下 Maven 引入 打包

1、引言

目前遇到了Maven打包的问题,这玩意不用记,每次网上查一下就可以,但是网上的答案大都是模棱两可,要不就是细节不清楚,并且不同的Maven打包需求不一样,有时候需要打可运行jar包;有时候需要打Source jar包;有时候需要将公共模块抽取出来打成jar包,并不需要运行,提供给别人引用等等,查找实在浪费时间,所以就自己验证整理一份,方便后续查看。

2、利用Spring Boot Mavn插件打可运行jar

这种需求非常常见,因为有时候我们开发的项目是以jar的形式部署到服务器运行,IDEA中自带的Maven插件就支持打jar包,步骤如下:

1、在需要打包的模块的pom文件引入插件

注意:不引入这个插件会导致打成的jar包运行时报错:xxxx.jar中没有主清单属性。需要如下指定插件版本和<executions>标签

<build>
    <!--指定jar包名称-->
    <finalName>test</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.3.7.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、点击IDEA右侧的Maven工具执行打包即可,如下图,双击package

3、此时在Target目录下找到jar,放到服务器上java -jar xxxx.jar运行即可。

3、手动选择Main Class的方式打可运行jar包

Idea的File->Project Structure->Artifacets,如下图:

选择需要打包的模块,选择Main Class,其他的可以选择默认选项。

注意:这种方式适合多模块的打包,如果是整体打包,打出的jar包运行会有问题,错误提示和解决放入参考如下:https://ask.csdn.net/questions/7618126

本人并没有测试链接中的方法是否可行,而是直接重新创建了一个模块,将代码迁移后打包的,暂未找到更好的方法。

开始Build,步骤如下:

点击Build后,项目目录下会生成一个out目录,out目录里面就是打包好的jar,如下图:

取出对应的jar包放到服务器上运行即可。

4、打Source JAR包(jar里面是.java文件,不是编译后的.class文件)

要打包的module的pom文件下引入如下插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <!--插件版本自行指定-->
            <version>2.4</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

 重新引入后刷新Maven插件,可以看到多了一个source插件,如下图:

双击install,可以将打成的普通jar和source jar发布到本地的Maven仓库,如下图:

上面的瘦jar包没有下载依赖的jar包,只有pom依赖,可以给其他工程从外部引入。

5、引入外部lib包后打可运行jar包

有时候开发时会用到第三方提供的jar包,不是通过Maven引入进来,属于系统级jar包,需要指定jar的本地访问路径,此时的引入和打包方式和一般项目不同。

5.1、引入方式

首先需要在项目的第二级创建lib文件夹,将第三方jar包引入其中,如图:

 然后在需要引入当前jar的模块pom文件中依赖,groupId和artifactId以及版本都是自定义,主要是指定<scope>为system,并指定java的本地路径,代码如下:

<dependencies>
    <dependency>
        <groupId>xxx.xxx</groupId>
        <artifactId>xxxx</artifactId>
        <version>1.0-SNAPSHOT</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/../lib/xxxx-1.0-SNAPSHOT.jar</systemPath>
    </dependency>
</dependencies>

5.2、打包方式

打包和其他的Spring Boot Maven插件打包一样,双击Package即可,但是需要注意在模块pom文件中增加如下配置:

<configuration>
    <includeSystemScope>true</includeSystemScope>
</configuration>

完成的打包插件代码如下:

<build>
    <!--指定jar包名称-->
    <finalName>test</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.3.7.RELEASE</version>
            <!--打包时包含外部jar包-->
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

 

标签:插件,各种,jar,如下,Maven,引入,打包
From: https://www.cnblogs.com/zhaodalei/p/16895450.html

相关文章

  • IDEA打包项目方式
    IEDA打包项目发布:点击AntBuild,然后点击左侧绿色+号;在弹框中选择需要打包的项目路径下的build.xml,点击OK即可;可以在打包之前配置打包的版本号和后缀。......
  • liquibase maven
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • Eclipse 创建Maven项目Select an Archetype为空解决方法
    一、问题Eclipse创建Maven项目SelectanArchetype为空 二、解决方法1、Maven配置Maven环境变量MAVEN_HOME:maven路径(如:D:\apache-maven-3.6.3)path:%MAVEN_HOME%\bin......
  • golang - win10 打包exe在linux运行
    1.打包步骤需要设置go打包配置为linuxSETGOOS=linuxSETGOARCH=amd64  然后cd 进入main.go文件目录执行打包指令gobuildmain.go  会出现一个没有后......
  • maven项目打包jar
    maven项目打包方式:https://blog.csdn.net/puhaiyang/article/details/78380550https://blog.csdn.net/m0_67391377/article/details/126435420......
  • 类的各种方法和属性
    ......
  • DHorse系列文章之maven打包
    插件打包这种方式是平时最常用的,首先要下载并安装maven环境,然后在被打包的项目中引入插件,有各种各样的打包插件,比如springboot自带插件:<plugin> <groupId>org.springfra......
  • maven在eclipse中无法加入
    实际情况是没有添加buildpath。问题:选择工程----->右键---->JavaBuildPath—->Libraries---->AddLibrary---->next---->finish后,Libraries下看不到......
  • Maven之阿里云镜像仓库配置
    Maven镜像简介阿里云Maven中央仓库为阿里云云效提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。阿里云云效 是企......
  • 加速 gradle 打包速度 !!
    如果执行gradlecleanbuild--info, 输出是: Lookingforadifferentdaemon...FounddaemonDaemonInfo{pid=19048,address=[5dc61bb0-e70a-41ff-855e-61754ab113ee......