maven本地构件分发到远程仓库

    xiaoxiao2021-03-25  116

    Maven - 使用distributionManagement分发构件到仓库repositories

      稍微大一点的项目开发过过程中都会诞生各种各样的轮子组件,通过Maven的包管理功能可以很方便的在项目pom.xml中对这些轮子组件进行依赖管理。   本地调试的时候可以直接mvn install将组件安装到本地的Maven仓库中,即.m2文件目录中,但是本地Maven仓库中的组件只能供当前用户使用,要将组件安装到局域网或者公网的远程Maven仓库中才能让大家都访问到。修改.m2目录下面的settings.xml和当前项目中的pom.xml配置后,再使用mvn deploy命令可将组件安装到远程Maven仓库。 1.首先是修改.m2目录中的settings.xml,添加servers相关配置,如下所示:

    <?xml version="1.0" encoding="UTF-8"?> <settings> <mirrors> ... </mirrors> <profiles> ... </profiles> <servers> <server> <id>nexus-releases</id> <username>admin</username> <password>password</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>password</password> </server> </servers> </settings

    2.接下来是修改需要被分发到远程仓库的项目中的pom.xml,如下:

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <properties> ... </properties> <dependencies> ... </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.version}</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> <distributionManagement> <repository> <id>releases</id> <url>http://your-domain-name/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://your-domain-name/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> </project>

    3.然后是到项目所在目录命令行执行 mvn deploy 即可把本地组件分发到远程仓库上去供其他人使用了。 当然,前提是你已经配置好了自己的nexus私服 :) 4.最后在需要依赖该组件的项目的pom.xml里面像添加其他开源第三方组件一样添加自己的组件就开源了!

    <dependencies> <!-- jsonrpc4j --> <dependency> <groupId>com.github.briandilley.jsonrpc4j</groupId> <artifactId>jsonrpc4j</artifactId> <version>${jsonrpc4j.version}</version> </dependency> <dependency> <groupId>your-groupId</groupId> <artifactId>your-artifactId</artifactId> <version>version</version> </dependency> </dependencies>

    PS. 其实也可以将settings.xml中的server认证信息放到pom.xml中,但是一般pom.xml是其他人可见的,而settings.xml是自己本地才知道的,为了信息安全就放settings.xml里面了。

    转载请注明原文地址: https://ju.6miu.com/read-14294.html

    最新回复(0)