使用maven私服

背景

公司搭建了私服,那么如何使用?本文记录常用的操作。

将工具包打包到私服

  1. pom.xml中添加一下配置
	<!-- 发布jar包到私服 -->
    <distributionManagement>
        <repository>
            <!-- 对应私服的releases仓库, 可能不同 -->
            <id>releases</id>
            <name>releases repository</name>
            <!-- 私服地址, 去私服上找下, 不一定是下面的地址 -->
            <url>http://server:port/repository/releases/</url>
        </repository>
        <snapshotRepository>
        	<!-- 快照版本库, 不用可以不配置 -->
			<id>snapshot</id>
			<name>Snapshot Repository</name>
			<url>http:server:port/repositories/snapshots/</url>
		</snapshotRepository>
    </distributionManagement>

    <build>
        <plugins>
            <!-- 配置该插件后,使用deploy时,可以上传jar到私服 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  1. 配置maven配置文件settings.xml
<!-- ... -->
<servers>
    <!-- 配置私服的密码 -->
	<server>
      <!-- 对应私服的releases仓库,注意是小写 -->
      <id>releases</id>
      <!-- 私服用户名 -->
      <username>admin</username>
      <!-- 私服密码 -->
      <password>123456</password>
    </server>
</servers>
<!-- ... -->
  1. 使用命令打包发布
mvn clean deploy

说明:
同时配置releases版本库和快照版本库, 当版本号<version>1.0-SNAPSHOT</version>带有SNAPSHOT(注意:一定是全大写)默认发布到快照库, 否则发布到release仓库

将一个已存在的jar包上传到maven私服

  1. 有时候已经存在的jar包也需要上传到maven私服。使用命令上传
mvn deploy:deploy-file -DgroupId=com.test -DartifactId=test -Dversion=1.0.0 -Dpackaging=jar -Dfile=test.jar -Durl=http://server:port/repository/releases/ -DrepositoryId=release

DgroupId=com.test --><groupId>com.tdt</groupId>
DartifactId=test --> <artifactId>test</artifactId>
Dversion=1.0.0 --> <version>1.0.0</version>
Dfile=test.jar --> 指定要上传的jar包位置, 这里刚好在执行命令的文件夹下
Durl=... --> 仓库位置
DrepositoryId=release --> 仓库ID

  1. 当然, 也可以直接使用浏览器登录私服上传

下载/引用私服的jar包

  1. 配置pom.xml
<repositories>
    <!-- 阿里云镜像仓库 -->
    <repository>
        <id>aliyun</id>
        <name>aliyun Repository</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <!-- 私服 -->
    <repository>
        <id>releases</id>
        <name>my Repository</name>
        <url>http://server:port/repository/releases/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<!-- 应用私有jar包 -->
<dependencies>
	<dependency>
         <groupId>com.test</groupId>
         <artifactId>XXtool</artifactId>
         <version>1.0.0</version>
    </dependency>
</dependencies>
  1. 配置maven的settings.xml
<!-- ... -->
<servers>
    <!-- 配置私服的密码 -->
	<server>
      <!-- 对应私服的releases仓库,注意是小写 -->
      <id>releases</id>
      <!-- 私服用户名 -->
      <username>admin</username>
      <!-- 私服密码 -->
      <password>123456</password>
    </server>
</servers>
<!-- ... -->
<mirrors>
<!-- 跳过自己的仓库, 也可以不配置这里 -->
	<mirror>
		<id>nexus-aliyun</id>
		<!-- 镜像名 -->
		<mirrorOf>*,!releases</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
</mirrors>
<!-- ... -->

repositorymirror的关系

  1. repositorypom.xml中指定了jar包的仓库, 且按照顺序依次查找引用jar包, 但是如果在maven配置文件settings.xml中配置了mirror就会“代理”pom中的配置, 所以可以不配置mirror
  2. mirror中的mirrorOf指定了要代理的仓库id, *表示代理所有仓库
  3. mirrorOf有更灵活的写法, 可以用!表示不代理指定仓库, 比如上文中的!releases, 将不代理releases私服

扩展

  1. repository中的url也可以是本地路径,如:
<repository>
	<id>local</id>
	<name>In Project Repo</name>
	<!-- 将一些jar包放到resources/lib/下 -->
	<url>file://${project.basedir}/src/main/resources/lib/</url>
	<releases>
		<enabled>true</enabled>
	</releases>
</repository>

  1. repository中release.enable表示允许从此版本库下载release版本, 一般我们会设置禁止从公共仓库下载快照版本
<!-- 允许从此版本库下载release版本 -->
<releases>
	<enabled>true</enabled>
</releases>

<!-- 禁止从此版本库下载快照版本 -->
<snapshots>
    <enabled>false</enabled>
</snapshots>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值