如何配置Maven将项目发布到自定义本地目录而非默认.m2仓库
你当前配置的distributionManagement节点是Maven为deploy命令准备的发布目标配置,而mvn install命令默认只会将构件安装到Maven默认本地仓库($HOME/.m2/repository),二者逻辑完全独立,这是你配置不生效的核心原因。
方案1:使用mvn deploy命令(最推荐,符合Maven标准生命周期定义)
你现有配置已经完全满足deploy的要求:pom中distributionManagement的repository地址正确指向了$HOME/myrepo/private,settings.xml中对应的id=maven-private的server配置也正常,本地文件仓库不需要账号密码留空即可。
直接替换你当前执行的命令为:
mvn deploy
执行后构件就会自动发布到你指定的$HOME/myrepo/private目录下,同时原有的第三方依赖拉取逻辑不受影响,依然会从你配置的third_party目录拉取。
方案2:修改install插件配置,自定义mvn install的输出路径
如果你希望继续沿用mvn install命令实现安装到指定目录,可以在pom.xml的<build>→<plugins>节点下添加如下配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>3.1.1</version> <configuration> <localRepositoryPath>${user.home}/myrepo/private</localRepositoryPath> </configuration> </plugin>
配置完成后执行mvn install就会直接将构件输出到你指定的private目录。
不推荐的全局修改方式
如果你想全局修改所有项目的默认本地仓库路径,可以在settings.xml的根节点下添加如下配置:
<localRepository>$HOME/myrepo/private</localRepository>
但该配置会导致所有第三方依赖也会缓存到private目录,不符合你拆分third_party和private目录的规划,因此不建议使用。
内容的提问来源于stack exchange,提问作者gzuhng
相关产品推荐
相关产品推荐

