maven配置本地仓库,使用配置文件如何使用本地仓库?

2020-05-16 22:05:54 java常见问答 6761

大家是否知道maven在配置的时候是如何使用maven的本地仓库呢?有没有小伙伴知道呀,今天咱们可以一起来总结总结,接下来让我们一起来了解下吧。

其实很多时候,并非所有资源都可以根据GroupId、ArtifactId和Version等信息从中央或代理仓库中得到数据。例如Oracle数据库的驱动程序,由于版权的原因,任何组织提供的公网Maven仓库都不可能提供该JAR包资源。如果我们的项目使用maven,就可以选择将Oracle的驱动程序JAR包作为Maven构件安装到本地仓库中供开发使用。

直接在本地仓库路径下手动创建文件夹并复制JAR包文件是不可能生效的,因为还需要自己手动编写pom.xml文件,太麻烦。本文将给出最简单的方式,通过命令行将一个JAR包安装到本地仓库中。

以Oracle 12c的驱动程序举例,其驱动程序存放在ORACLE_HOMEproduct12.1.0dbhome_1jdbclib路径下,推荐使用其中的ojdbc7.jar文件,它需要JDK版本在1.7以上。可以将该文件复制出来到D盘根目录下,以精简后面的指定路径。

确保在cmd当中可以正确使用mvn命令(通过mvn -v可以验证),然后使用如下命令:

mvn install: install - file - Dfile = D: ojdbc7.jar - DgroupId = com.tech4j.driver - DartifactId = oracle - connector - java - Dversion = 12.1 - Dpackaging = jar

在这段命令中,-Dfile参数指定了JAR包文件所在的路径,并依次指定了自定义的GroupId、ArtifactId和Version信息。

通过这种方式,可以简单快速地将第三方JAR包安装到本地仓库中供Maven项目依赖使用。例如:

<dependency>
    <groupId>com.tech4j.driver</groupId>  
    <artifactId>oracle-connector-java</artifactId>  
    <version>12.1</version>  
</dependency>

Maven配置项目使用本地仓库有以下方式实现:

1、类似本地仓库,但是属于本地依赖,比如某个JAR包是引用第三方的,直接放在了项目的lib文件夹,那么此时可以如下配置项目的POM:

<dependency>
         <groupId>ldapjdk</groupId>
         <artifactId>ldapjdk</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}srclibldapjdk.jar</systemPath>
 </dependency>

2、配置Maven的setting.xml文件的本地仓库地址,但是这个方式的意思不是用在项目上的本地仓库,而是比如远程仓库缓存的本地目录;如果要实现项目上使用的本地仓库,可以使用这个思路解决,比如先配置好本地仓库目录,然后安装需要的JAR包到本地仓库,最后就是在项目上直接引用这个JAR包即可。

配置setttin.xml的本地仓库目录方式如下:

 <localRepository>C:/MyLocalRepository</localRepository>

3、使用Maven的deploy(http://maven.apache.org/plugins/maven-deploy-plugin/)插件中的命令mvn deploy部署到本地文件夹,得到JAR包的相关文件,POM配置如下:

<distributionManagement>
    <repository>
        <id>oss</id>
        <url>http://127.0.0.1:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>oss</id>
        <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
 </distributionManagement>

注意:

1、上面的配置是远程仓库的deploy,其中包括了两个地址release和snapshot。

2、配置deploy到本地仓库只需要配置节点即可,节点去除。

3、本地仓库的url参考:file:/user/jim/home/test/或者file:D:/test/

使用命令:mvn deploy

发布好之后整个文件夹test里面的内容可以提交到一个远程目录或者直接使用这个本地目录,在POM项目上配置远程仓库的地址,不过这个url节点可以使用本地路径,配置如下:

<repositories>
    <repository>
        <id>jsoftlocal-mvn-repo</id>
        <url>file:D:/test/</url>
</repository></repositories>

提示:这个url节点可以是远程地址,本地局域网地址,也可以是本地目录地址。

配置好之后,直接在POM上配置自己发布的依赖即可。比如我发布测试的JAR包引入如下:

 <dependency>
            <groupId>com.jsoft</groupId>
            <artifactId>testcommon</artifactId>
            <version>0.0.1-SNAPSHOT</version>
</dependency>

以上就是今天所讲的内容,更多想要了解Java常见问答的相关内容,请继续关注本网站。

推荐文章:

maven中央仓库地址有哪些?误删了maven库怎么办?

maven仓库配置介绍,如何更改中央仓库地址?

maven打包如何跳过测试操作的?