maven项目打包上传到私有仓库

目录
  • 1. 背景
  • 2. 步骤
    • 2.1 修改pom.xml
    • 2.2 命令执行
    • 2.3 成功后的依赖
  • 3. 扩展

1. 背景

  最近有些自己制作的工具包,需要单独抽取出来之后,在打包的时候,同时上传到自己的maven私服仓库,供别人引用,并且还能够引用的时候看到源码。但是,在上传的过程中总是失败不成功,特别上火。最后总算成功,记录下步骤,希望能够帮助到需要的人。

2. 步骤

  先说下我的要求:

  • 本地打包能够自动上传maven私服仓库。
  • 别人引用后,能够看到源码及注释。

2.1 修改pom.xml

2.1.1 指定上传仓库地址

  首先需要到自己项目里的pom.xml里添加下边一段

 <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://maven.aaaa.com/nexus/content/repositories/thirdparty</url>
        </repository>
    </distributionManagement>

  上图中,id后边会说,这里的url的地址,是对应你仓库地址,你可以在浏览器里访问下类似http://maven.aaaa.com/nexus的地址,输入账号密码,登录后,如下图4对应的地址,就是:

  需要注意的是,因为上图中,我们仓库有好几个,我是上传到了3对应的仓库,你可以根据你们实际的仓库地址来就行。
  另外id对应的releases其实是与指定的maven配置文件conf/setttings.xml中对应,如下图所示:

  如果对应的settings.xml里没有配置<servers>对应的标签,那也需要添加一下。如下示例:

  <servers>
    <server>
    	<!--与2.1.1中的id值对应-->
        <id>releases</id>
        <!--账号密码需要与私服登录账号密码一致-->
        <username>admin</username>
        <password>znxd</password>
    </server>
  </servers>

  还有,注意仓库的账号密码需要正确。

2.1.2 添加源码插件

   上边的配置仅仅是指定仓库的地址,因为还需要让下载依赖的人,能够看到源码,因此还需要有一个插件,maven-source-plugin。再找到项目的pom.xml,添加如下插件:

<!-- 上传源码 -->
   <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>

   最后,总结一下现在pom.xml新增的这俩东西的位置:

<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>http://maven.aaaaa.com/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\conf\settings-154waiwang.xml" deploy

  其中 -s--settings的缩写。

   这里我也是被坑惨了,我一直以为,因为我在配置maven环境变量的时候,指定了maven_home/m2_home,我觉得,当我使用mvn命令时,会自动使用对应的settings.xml文件进行打包,然后并不是,所以为什么上边需要通过-s来指定下settings.xml才可以。

   如果不指定的话,会报错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打包上传到私有仓库 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android打包上传AAR文件到Maven仓库的示例

    1.创建 Android 库 按以下步骤在项目中创建新的库模块: 依次点击 File > New > New Module. 在随即显示的 Create New Module 窗口中,依次点击 Android Library 和 Next. 为您的库命名,并为库中的代码选择一个最低 SDK 版本,然后点击 Finish. 2.上传aar包至Maven私服 打开新模块 build.gradle 文件,按如下说明修改: plugins { id 'com.android.library' // 库

  • maven将项目打包上传到nexus私服的详细教程

    1.pom.xml文件添加distributionManagement节点. 模块项目中如果存在父子项目,且父子项目的jar包都需要上传到私服的话,直接在父项目pom文件中添加这段配置,如果只需要将子项目jar包上传私服,则在子项目的build标签同级添加这段配置. <!-- 使用分发管理将本项目打成jar包,直接上传到指定服务器 --> <distributionManagement> <!--正式版本--> <repository> <!-- ne

  • maven项目打包上传到私有仓库

    目录 1. 背景 2. 步骤 2.1 修改pom.xml 2.2 命令执行 2.3 成功后的依赖 3. 扩展 1. 背景   最近有些自己制作的工具包,需要单独抽取出来之后,在打包的时候,同时上传到自己的maven私服仓库,供别人引用,并且还能够引用的时候看到源码.但是,在上传的过程中总是失败不成功,特别上火.最后总算成功,记录下步骤,希望能够帮助到需要的人. 2. 步骤   先说下我的要求: 本地打包能够自动上传maven私服仓库. 别人引用后,能够看到源码及注释. 2.1 修改pom.xml

  • docker-maven-plugin打包镜像并上传到私有仓库

    目录 1.docker-maven-plugin 介绍 2.环境.软件准备 3.Demo 示例 3.1 配置 DOCKER_HOST 3.2 示例构建镜像 3.3 执行命令 3.4 绑定Docker 命令到 Maven 各个阶段 3.5 使用私有 Docker 仓库地址 3.6 安全认证配置 3.7 其他参数 4.FAQ 1.docker-maven-plugin 介绍 在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动

  • vue项目打包上传github并制作预览链接(pages)

    当Vue项目完成后,在根目录下打开命令行,输入命令: npm run build 实际上此命令就是执行build.js文件,将项目打包成静态资源. 此命令完成后,项目根目录下会多出一个dist文件夹,dist文件里面有: static文件下包括项目打包后的css.js.img.fonts(字体图标). 项目资源无法加载 点击index.html,浏览器显示该页面是空白的.打开控制台看到index.html文件中没有加载任何css.js文件. 解决方法: 打开项目根目录config下的index.

  • IDEA项目代码上传gitlab远程仓库过程图解

    IDEA新项目代码上传到gitlab远程仓库具体步骤 创建本地仓库 IDEA:VCS-->Import into Version Control-->Create Git Repository 添加文件关联git版本控制 init完成之后,可以看到原本的项目文件名变成了红色了,红色在idea的git版本表示未add的文件,同时在系统资源管理中打开项目的磁盘文件目录,会发现一个.git的隐藏文件,这个文件就git的配置和仓库文件 IDEA:VCS-->Git-->Add添加当前项目下

  • 使用gradle打包上传jar并创建Nexus3x私有仓库步骤示例

    目录 一.创建私有仓库 二.将私有仓库添加到maven-public库中 三.使用Gradle上传jar包到私有仓库示例 一.创建私有仓库 1.打开Nexus首页并登录,进入设置界面,点击创建 2.选择maven2 hosted类型的仓库 3.输入创建的仓库的名称,如果允许重复部署,可以将下方的Disable redeploy更改为Allow Redeploy 二.将私有仓库添加到maven-public库中 1.打开maven-public的设置界面 2.将我们创建的库添加到maven-pub

  • Spring Boot 打包上传Docker 仓库的详细步骤

    重要提示:学习本文之前需要提前了解docker容器相关的知识,了解和熟练运用常用的docker操作命令,如果已经了解了docker容器相关的知识那我们就开搞吧! 以下是完成标题所述功能的大致步骤: 搭建docker镜像仓库 修改Spring Boot 配置文件添加docker仓库配置,打包,上传至docker 镜像仓库 从自己搭的docker镜像仓库拉取上传的镜像文件并运行 Step1 搭建docker镜像私有仓库 搭建docker镜像仓库我们需要依赖docker-registry工具 ,doc

  • gradle使用maven-publish发布jar包上传到私有maven配置

    目录 一.添加插件 二.添加如下配置 三.执行以下命令进行上传 四.遇见的问题 一.添加插件 apply plugin: 'maven-publish' 二.添加如下配置 //打包源码 task sourceJar(type: Jar) { from sourceSets.main.allJava } publishing { publications { maven(MavenPublication) { //指定group/artifact/version信息,可以不填.默认使用项目grou

  • 使用pycharm将自己项目代码上传github(小白教程)

    目录 1.梳理一下Git.github和gitee这三个之间的关系: 1.1.Github 1.2.Gitee 1.3.Git 2.如何安装Git 基于Pycharm将代码上传到github或者gitee上 1.首先安装一个插件: 2.注册github账号: 1.梳理一下Git.github和gitee这三个之间的关系: 1.1.Github 首先从我们最熟悉的github来说,他其实是一个代码托管平台,我们可以在他的里面新建很多的仓库,有强迫症的我理解就是一个仓库是一个自己的项目代码,这些仓库

随机推荐