Maven 私服搭建

文章目录

配置模板

server

xml 复制代码
<!--第一个server-id要和下面的mirror中的id一致,代表拉取是也需要进行身份校验-->
<server>
   <id>company-java</id>
   <username>admin</username>
   <password>company</password>
</server>
<server>
  <!-- jar上传时候进行验证,id对应的是pom中id属性的值-->
  <id>tcReleases</id>
    <username>admin</username>
    <password>company</password>
</server>
<server>
  <id>tcSnapshots</id>
  <username>admin</username>
  <password>company</password>
</server>

mirror

xml 复制代码
<mirror>
  <id>company-java</id>
  <mirrorOf>*</mirrorOf>
  <name>company java</name>
  <url>http://192.168.7.10:8081/repository/java-group/</url>
</mirror>
1.3 profile
<profile>
  <!-- 私服配置id java maven private server -->
  <id>company-jmps</id>
  <activation>
    <activeByDefault>true</activeByDefault>
    <jdk>1.8</jdk>
  </activation>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  </properties>
  <!-- 私服仓库列表 -->
  <repositories>
    <repository>
      <id>company-java</id>
      <name>company java</name>
      <!-- 虚拟的URL形式,指向镜像的URL-->
      <url>http://192.168.7.10:8081/repository/java-group/</url>
      <layout>default</layout>
      <!-- 从该仓库下载releases版本的构件-->  
      <releases>
        <enabled>true</enabled>
      </releases>
      <!-- 从该仓库下载snapshot版本的构件 -->  
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>
  <!-- 插件仓库列表 -->
  <pluginRepositories>
    <pluginRepository>
      <id>company-java</id>
      <name>company java</name>
      <url>http://192.168.7.10:8081/repository/java-group/</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
</profile>

1.4 模板文件

暂时无法在文档外展示此内容

二、 pom.xml配置

xml 复制代码
<distributionManagement>
   <repository>
      <!--id的名字可以任意取,但是在setting文件中的属性<server>的ID与这里一致-->
      <id>tcReleases</id>
      <!--指向仓库类型为host(宿主仓库)的储存类型为Release的仓库-->
      <url>http://192.168.7.10:8081/repository/java-release/</url>
   </repository>
   <snapshotRepository>
      <id>tcSnapshots</id>
      <!--指向仓库类型为host(宿主仓库)的储存类型为Snapshot的仓库-->
      <url>http://192.168.7.10:8081/repository/java-snapshot/</url>
   </snapshotRepository>
</distributionManagement>

RELEASE、SNAPSHOT版本区别

发行版(RELEASE)

开发者完成代码修改并修改版本号后,使用maven deploy命令部署至私服,需通知团队成员版本变更并更新依赖。版本后缀无-SNAPSHOT则默认为RELEASE版本。

快照(SNAPSHOT)

一种特殊的版本,开发者完成代码修改后,使用maven deploy命令部署至私服,团队成员不需要关注代码变更,Maven每次构建都会在远程仓库中检查并获取新的快照。

注意:每次更新jar包时,版本号不变,且后缀必须带上-SNAPSHOT。

mvn deploy

deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。

注意:如某个模块不需要部署至maven仓库,可在pom.xml properties中添加

<maven.deploy.skip>true</maven.deploy.skip> 配置,跳过deploy。

相关推荐
RainbowJie11 小时前
从零到一:Maven 快速入门教程
java·maven
RainbowJie11 小时前
Maven的生命周期
java·maven
凌辰揽月4 小时前
Web后端基础(Maven基础)
前端·pycharm·maven
程序员葵安7 小时前
【Java Web】9.Maven高级
java·数据库·后端·maven
eternal__day10 小时前
微服务架构下的服务注册与发现:Eureka 深度解析
java·spring cloud·微服务·eureka·架构·maven
青衫红叶1 天前
Idea使用springAI搭建MCP项目
java·spring cloud·maven·intellij-idea·spring-ai
杨DaB2 天前
【JavaWeb】Maven、Servlet、cookie/session
hive·servlet·maven
Aric_Jones2 天前
HashMap 的底层原理
java·eclipse·maven·hashmap·hash
于冬恋2 天前
Web后端快速入门(Maven)
java·maven
Fastcv2 天前
手把手教你上传安卓库到Central Portal
android·maven·jcenter