美文网首页程序员Java
Maven项目使用了本地Jar包如何自动打包

Maven项目使用了本地Jar包如何自动打包

作者: 小布_cvg | 来源:发表于2020-10-21 17:14 被阅读0次

    一、前言

    构建项目的时候避免不了使用一些本地 Jar 包,这些Jar包不在中央仓库里存在,我们在本地添加了依赖后,本机使用虽然没问题,但是如果想用比如 Docker 自动化构建这种远程构建的话就会出现问题,针对这种情况,可以采用以下几个步骤解决:

    二、将本地Jar包安装成Maven依赖

    进入到 Jar 包所在目录,使用一条命令:

    mvn install:install-file -DgroupId=site.xiaobu -DartifactId=xiaobuTool -Dversion=1.0.0 -Dpackaging=jar -Dfile=xiaobuTool.jar
    

    这条命令的意思是将 xiaobuTool.jar 这个 jar 包用 jar 的形式安装到仓库,这样项目中就可以直接引用了。
    引用示例:

       <dependencies>
            <dependency>
                <groupId>site.xiaobu</groupId>
                <artifactId>xiaobuTool</artifactId>
                <version>1.0.0</version>
            </dependency>
        </dependencies>
    

    三、找到本地仓库中安装的Jar包根目录并复制到项目下

    3.1 安装的 jar 包默认在~/.m2/repository下面

    本地安装jar包位置
    3.2 在项目根目录中新建一个 lib 文件夹并将要使用的本地jar包整个目录复制进去
    lib目录

    三、在POM文件中配置本地仓库

    在 pom 文件中添加下列的项,id 和 name 可以随意,url 中 ${project.basedir} 指的是项目根目录,意思是从将项目根目录下的 lib 文件夹作为本地仓库。

        <repositories>
            <!-- 本地仓库 -->
            <repository>
                <id>in-project</id>
                <name>In Project Repo</name>
                <url>file://${project.basedir}/lib</url>
            </repository>
        </repositories>
    

    四、后记

    至此,maven 项目就可以在其余主机上顺利被构建了。
    附带项目的一些构建配置:

       <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-shade-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <transformers>
                                    <transformer
                                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <!-- 指定项目主启动类 -->
                                        <mainClass>xxx.xxx.xxx.xxx.App</mainClass>
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    相关文章

      网友评论

        本文标题:Maven项目使用了本地Jar包如何自动打包

        本文链接:https://www.haomeiwen.com/subject/drjemktx.html