Maven配置项目使用本地仓库有以下方式实现:
1、类似本地仓库,但是属于本地依赖,比如某个JAR包是引用第三方的,直接放在了项目的lib文件夹,那么此时可以如下配置项目的POM:
<dependency> <groupId>ldapjdk</groupId> <artifactId>ldapjdk</artifactId> <scope>system</scope> <version>1.0</version> <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath> </dependency>
说明:红色部分为项目的JAR包所在位置。
!更好的方式是配置编译参数<compilerArguments>,添加extdirs将jar包相对路径添加到配置中,如下:
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>src\main\webapp\WEB-INF\lib</extdirs> <extdirs>${basedir}/WebRoot/WEB-INF/lib</extdirs> </compilerArguments> </configuration> </plugin> </plugins> </build>
说明:红色部分为项目的JAR包所在位置。
2、配置Maven的setting.xml文件的本地仓库地址,但是这个方式的意思不是用在项目上的本地仓库,而是比如远程仓库缓存的本地目录;如果要实现项目上使用的本地仓库,可以使用这个思路解决,比如先配置好本地仓库目录,然后安装需要的JAR包到本地仓库,最后就是在项目上直接引用这个JAR包即可。
配置setttin.xml的本地仓库目录方式如下:
<localRepository>C:/MyLocalRepository</localRepository>
安装JAR包的思路参考:https://www.jb51.net/article/189209.htm
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>
注意:
①上面的配置是远程仓库的deploy,其中包括了两个地址release和snapshot。
②配置deploy到本地仓库只需要配置<repository>节点即可,<snapshotRepository>节点去除。
③本地仓库的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>
Maven内置变量说明:
- ${basedir} 项目根目录
- ${project.build.directory} 构建目录,缺省为target
- ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
- ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
- ${project.packaging} 打包类型,缺省为jar
- ${project.xxx} 当前pom文件的任意节点的内容
到此这篇关于Maven配置项目依赖使用本地仓库的方法汇总(小结)的文章就介绍到这了,更多相关Maven 依赖本地仓库内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!