Maven引用本地jar包以及打包发布注意事项

这篇具有很好参考价值的文章主要介绍了Maven引用本地jar包以及打包发布注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Maven引用本地jar包

  • 首先在resources目录下创建名为【lib】的文件夹,然后将本地jar包放入该文件夹下,如图

Maven引用本地jar包以及打包发布注意事项

  •  然后在pom文件中引用该jar包
<dependency>
    <groupId>org.openqa.selenium</groupId>
    <artifactId>selenium-commons</artifactId>
    <scope>system</scope>
    <systemPath>${basedir}/src/main/resources/lib/selenium-commons-4.4.2.jar</systemPath>
    <version>4.2.2</version>
</dependency>

2、maven编译时找不到本地引用的jar包

在maven编译完成后,运行jar包的时候报错找不到本地引用的jar包,需要在pom文件中build中的【spring-boot-maven-plugin】中加一段配置增加配置:

<build>    
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <!--maven编译时将本地引用的jar包一起打包-->
            <includeSystemScope>true</includeSystemScope>
        </configuration>
    </plugin>
</build> 

同步下maven后重新编译发现问题解决。


3、Maven将本地jar包添加到本地仓库【可被pom文件调用】

  • 首先确保本地存在maven环境,然后进入settings文件查看setting配置本地仓库路径,入下图所示:

Maven引用本地jar包以及打包发布注意事项

  • 然后将本地jar包放到一个目录下

Maven引用本地jar包以及打包发布注意事项

  • 在文件路径输入cmd直接进入cmd控制台。 
  • 指定jar包在maven仓库的groupId,artifactId,version等信息:
<dependency>
    <groupId>com.bw</groupId>
    <artifactId>mqtt-producer</artifactId>
    <version>1.1.2</version>
</dependency>
  • 接着在cmd执行maven命令:
mvn install:install-file "-Dfile=mqtt-producer-1.1.2.jar" "-DgroupId=com.bw" "-DartifactId=mqtt-producer" "-Dversion=1.1.2" "-Dpackaging=jar"

Maven引用本地jar包以及打包发布注意事项

看到SUCCESS则表示上传成功。

  • 最后到 setting配置本地仓库路径下查看仓库是否添加成功

Maven引用本地jar包以及打包发布注意事项

Maven引用本地jar包以及打包发布注意事项

 上图可以看到添加成功。最后pom文件刷新可看到本地仓库引用成功。


 4、maven编译后将项目中用到的jar包拷贝到target某文件夹下

在pom中添加如下配置

<build>
    <!--拷贝依赖到jar外面的lib目录-->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-lib</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>target/lib</outputDirectory>
                    <excludeTransitive>false</excludeTransitive>
                    <stripVersion>false</stripVersion>
                    <includeScope>runtime</includeScope>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 -->
                <addMavenDescriptor>false</addMavenDescriptor>
                <manifest>
                    <!-- 是否要把第三方jar加入到类构建路径 -->
                    <addClasspath>true</addClasspath>
                    <!-- 外部依赖jar包的最终位置 -->
                    <classpathPrefix>lib/</classpathPrefix>
                    <!-- 项目启动类 -->
                    <mainClass>com.saas.reptile.ReptileApplicatio</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
</build>

maven编译后可以在target中看到生成的jar包,如下图:

Maven引用本地jar包以及打包发布注意事项


5、maven编译打包时不编译项目中的依赖包

需要在pom文件中build中的【spring-boot-maven-plugin】中增加配置:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <layout>ZIP</layout>
        <!-- 注释后和依赖包一起打包 取消注释则不打包依赖-->
        <includes>
            <include>
                <groupId>nothing</groupId>
                <artifactId>nothing</artifactId>
            </include>
        </includes>
    </configuration>
</plugin>

再配合上述的将项目中用到的jar包拷贝到target某文件夹下的【build】配置,将依赖包从项目jar包中完全抽离出来;

最后发布jar包的时候在jar包同级目录创建名为【lib】的文件夹,作为jar包外部依赖,如下图所示

Maven引用本地jar包以及打包发布注意事项


6、maven编译打war包

  • 首先在启动类中继承SpringBootServletInitializer类,并重写SpringApplicationBuilder的configure方法。
@SpringBootApplication
@ServletComponentScan
@EnableScheduling
public class DemoApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
        return springApplicationBuilder.sources(DemoApplication.class);
    }
 
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
  • 其次改动pom文件

首先将<packaging>改成【war】;

然后排除【spring-boot-starter-web】依赖包中的tomcat依赖;

最后加入【javax.servlet】依赖。文章来源地址https://www.toymoban.com/news/detail-408223.html

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>

    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>
  • 最后修改build
<build>
    <!-- 打包后的服务名称 -->
    <finalName>dsm</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--可以不用添加web.xml-->
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.1.0</version>
        </plugin>
        <plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-deploy-plugin -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <!--deploy 时忽略 model-->
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

到了这里,关于Maven引用本地jar包以及打包发布注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • maven工程打包引入本地jar包

     在jar包的文件目录下执行:   maven仓库效果:   maven引入:

    2024年02月22日
    浏览(45)
  • Maven导入sqlserver驱动jar包依赖包到本地仓库并引用

    一、配置maven环境变量 (1)、找到此电脑右键----点击属性----选择高级系统设置----点击环境变量----新建系统变量 (2)、新建系统变量:MAVEN_HOME,变量值填你maven解压的路径,然后点击确定。 (3)、在已有的path系统变量里,点击编辑,在变量值的最后填写%MAVEN_HOME%bin。 (4)、验证是

    2023年04月08日
    浏览(50)
  • maven打包时不从本地仓库找jar包

    在工程需要依赖第三方资源包,同时该jar包不在远程或者中央仓库中,我直接从同事本地仓库拷贝jar包过来,打包时发现maven不从本地仓库找,却到其他仓库找,导致报错,记录一下解决方法: 修改前如下图 只拷贝一个jar包,maven不会在本地找。需要将对应依赖包的POM文件也

    2024年02月11日
    浏览(43)
  • JAR包命令解压以及再命令打包(windows maven)

    1、将JAR包进行解压 如D:demotest.jar,在cmd中切到D:demo执行以下命令: 2、重新打成JAR包 执行命令后会把test.jar包解压到D:demo目录下,替换class或者lib中的jar包后进行重新打jar包 第一种打包方式: 第二种打包方式: 注:maven项目如果通过第一种打包方式,打包后运行时提示缺少

    2024年02月16日
    浏览(51)
  • 如何将安卓 Gradle 模块打包发布到本地 Maven 仓库

    笔者的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17   Android 的 Gradle 项目与一般的 Gradle 项目是不同的,因此对将 Gradle 模块打包发布到本地 Maven 仓库来说,对普通 Gradle 项目适用的方法,对 Android 项目是不适用的。   因为普通 Gradle 项目打包生成的是

    2024年02月02日
    浏览(52)
  • Nexus如何导入jar以及批量导入Maven的本地库目录

    本篇基于 Nexus 的版本是 nexus-3.55.0-01 本方法适用Linux和Windows Windows 需要安装Git , 使用Git Bash执行 上传依赖包到Nexus 服务器的方式有多种, 包含: 单个jar上传: 在Nexus管理台页面上传单个jar 源码编译上传: 在源码项目中使用 Maven的deploy 命令发布 使用脚本批量上传Maven本地库

    2024年01月24日
    浏览(43)
  • 单体项目和多模块项目jar包补丁部署注意事项

    目前接触的项目结构主要有单体项目和多模块项目,且这些项目是部署在网络环境一般的服务器上,随着项目规模变大,单个jar的体积动辄就上百MB,每一次代码小改动不可能都上传整个jar,每次代码改动后可能就是把编译后的class文件在服务器上做一个替换,或者直接使用

    2024年01月21日
    浏览(44)
  • python打包程序注意事项

    今天用python的时候,写了一个脚本来进行筛选内容,但是一次一次的进行打开和启动python,一点麻烦,所以今天就准备将脚本来进行包装成应用程序来进行运行。 目前常见的打包应用程序都是通过 Pyinstaller 这个脚本实现的,我们现在开始使用。 首先先安装Pyinstaller 我们通过

    2024年02月05日
    浏览(60)
  • uniapp安卓ios打包上线注意事项

    1、安卓包注意事项 隐私政策弹框提示   登录页面隐私政策默认不勾选 隐私政策同意前不能获取用户权限 APP启动时,在用户授权同意隐私政策前,APP及SDK不可以提前收集和使用IME1、OAID、IMS1、MAC、应用列表等信息   ios包注意事项 需要有注销账号的功能 3、安卓包基本资料

    2024年02月12日
    浏览(52)
  • Unity中使用AssetBundle打包与加载的注意事项

    一、使用AssetBundle进行打包与加载 个人觉得可以参考以下两篇博客,这个网上相关教程很多,还不明白的可以去百度,或者给我留言。 Unity 打包与加载AssetBundle(加载对应的依赖) Unity中的AssetBundle 二、使用AssetBundle进行加载的时候注意事项: 注意事项一:AssetBundle名字和设置

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包