maven项⽬打包上传到私有仓库
⽬录
1. 背景
2. 步骤
2.1 修改l
2.2 命令执⾏
2.3 成功后的依赖
3. 扩展
1. 背景
maven打包本地jar包  最近有些⾃⼰制作的⼯具包,需要单独抽取出来之后,在打包的时候,同时上传到⾃⼰的maven私服仓库,供别⼈引⽤,并且还能够引⽤的时候看到源码。但是,在上传的过程中总是失败不成功,特别上⽕。最后总算成功,记录下步骤,希望能够帮助到需要的⼈。
2. 步骤
  先说下我的要求:
本地打包能够⾃动上传maven私服仓库。
别⼈引⽤后,能够看到源码及注释。
2.1 修改l
2.1.1 指定上传仓库地址
  ⾸先需要到⾃⼰项⽬⾥的l⾥添加下边⼀段
<distributionManagement>
<repository>
<id>releases</id>
<url>maven.aaaa/nexus/content/repositories/thirdparty</url>
</repository>
</distributionManagement>
  需要注意的是,因为上图中,我们仓库有好⼏个,我是上传到了3对应的仓库,你可以根据你们实际的仓库地址来就⾏。
  另外id对应的releases其实是与指定的maven配置⽂件l中对应,如下图所⽰:
  如果对应的l⾥没有配置<servers>对应的标签,那也需要添加⼀下。如下⽰例:
<servers>
<server>
<!--与2.1.1中的id值对应-->
<id>releases</id>
<!--账号密码需要与私服登录账号密码⼀致-->
<username>admin</username>
<password>znxd</password>
</server>
</servers>
  还有,注意仓库的账号密码需要正确。
2.1.2 添加源码插件
  上边的配置仅仅是指定仓库的地址,因为还需要让下载依赖的⼈,能够看到源码,因此还需要有⼀个插件,maven-source-plugin。再到项⽬的l,添加如下插件:
<!-- 上传源码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
  最后,总结⼀下现在l新增的这俩东西的位置:
<project>
<!-----------省略多余的依赖---------->
<build>
<plugins>
<!-----------省略多余的plugin---------->
<!-- 上传源码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>releases</id>
<url>maven.aaaaa/nexus/content/repositories/thirdparty</url>
</repository>
</distributionManagement>
</project>
2.2 命令执⾏
  配置完成了之后,就可以执⾏命令了,这⾥可以通过两种命令实现,⼀种是开发⼯具idea⾥执⾏,另⼀种是通过环境变量的mvn命令。
  注意,不管⽤下边哪种命令,都需要先注意版本号,如果私服⾥存在你这个版本的包,那肯定会打包上传不成功,可能会报错:Return code is: 400, ReasonPhrase: Bad Request。  因此,别忘了改下版本。如下图所⽰:
2.2.1 idea中执⾏
  如果你的开发⼯具是idea,其实eclipse也⼀样,建议⽤这种⽅式。
  在开发⼯具中,到右侧的maven project,如下图所⽰:
  最终的命令,其实是执⾏了clean deploy。如果执⾏完后出现⼤概下边的⽇志,说明成功了。
[INFO] Building jar:*******
[INFO] Installing ****  to  *****
[INFO] --- ****  Uploading:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
  当然,也可以通过浏览器去访问下,下是否仓库⾥有对应jar包。
2.2.2 mvn命令执⾏
  如果想使⽤mvn命令,那就需要注意maven环境变量配置,这⾥不说咋配置mvn命令了,这⾥说下步骤和注意的地⽅。
  ⾸先,打开项⽬所在⽬录,通过`cmd打开当前⽬录,如下图所⽰:
执⾏命令如下:
mvn -s "C:\Program Files\apache-maven-3.5.011\l" deploy
  其中-s是--settings的缩写。
  这⾥我也是被坑惨了,我⼀直以为,因为我在配置maven环境变量的时候,指定了maven_home/m2_home,我觉得,当我使⽤mvn命令时,会⾃动使⽤对应的l⽂件进⾏打
包,然后并不是,所以为什么上边需要通过-s来指定下l才可以。
  如果不指定的话,会报错Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] ,⼤概是⽆权限的意思。看来应该是不指定的话,会⾛⼀个默认的⽂件,因为那个⽂件⾥没有对应的账号密码,因此会报错。
2.3 成功后的依赖
  上传成功后,可以通过地址⼀下,如下图即表⽰成功:
3. 扩展
  ⽐如你做这个依赖包,可能后边还会有更新的时候,但是如果以前的依赖包已经被别⼈使⽤,那不可能⼀个个的通知使⽤者,maven本⾝提供这种⾃动下载⾼版本的功能,只需要
对version标签的值改⼀下。如下:
<dependency>
<groupId>com.agri</groupId>
<artifactId>znxd-framework</artifactId>
<version>[1.0,)</version>
</dependency>
  其中[1.0,)表⽰更新从1.0版本开始的最新包。这样有个好处就是,当你的扩展包更新成⼤于1.0的包时,使⽤⼈的⼯程⾥,会⾃动变更为最新的包。这样你就可以在写错代码的时候,偷偷的⾃⼰更新成最新的包,避免尴尬。
到此这篇关于maven项⽬打包上传到私有仓库的⽂章就介绍到这了,更多相关maven打包上传到私有仓库内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。