GitHub上创建自己的Maven仓库并引用

1、首先在Github仓库中创建一个自己的仓库,仓库名称为:mvn-repo,如下图所示:

GitHub上创建自己的Maven仓库并引用_第1张图片

2、然后在mvn工具的配置文件settings.xml中(在window中配置文件会在Maven的安装目录下的conf文件夹下),找到servers标签,添加一个server,如:

    
        github
        guihub登录的用户名
        guihub登录的用户密码
    

如下图所示:

GitHub上创建自己的Maven仓库并引用_第2张图片

3、在maven项目的pom.xml中添加入下代码,将本地的jar发布到本地仓库中。

    
        
            
                maven-deploy-plugin
                2.8.1
                
                    internal.repo::default::file://${project.build.directory}/mvn-repo
                
            
        
    

如下图所示:

GitHub上创建自己的Maven仓库并引用_第3张图片

 

4、然后输入: mvn clean deploy命令,如下图所示bulid成功即可将jar发布到了本地残酷中了:

GitHub上创建自己的Maven仓库并引用_第4张图片

GitHub上创建自己的Maven仓库并引用_第5张图片

 

 

5、将本地仓库中发布到远程的github指定的仓库中,添加修改插件,如下代码:

           
                com.github.github
                site-maven-plugin
                0.12
                
                    Maven artifacts for ${project.version}
                    true
                    ${project.build.directory}/mvn-repo
                    refs/heads/master
                    true
                    
                        **/*
                    
                    mvn-repo
                    sxjlinux
                
                
                    
                        
                            site
                        
                        deploy
                    
                
            

注意:branch必须是refs/heads/开头的,后边跟分支名称,我们在网页上查看到mvn-repo下有一个master的分支,如下图所示:

GitHub上创建自己的Maven仓库并引用_第6张图片

6、然后加入如下代码,配置远程的github服务:


        github
    

如下图所示:

GitHub上创建自己的Maven仓库并引用_第7张图片

 

7、整个配置pom.xml文件代码如下:



    
        pubmodel
        com.wincom.publicmodel
        2.0
    
    4.0.0
    2.0
    path
    
        
            
                maven-deploy-plugin
                2.8.1
                
                    internal.repo::default::file://${project.build.directory}/mvn-repo
                
            
            
                com.github.github
                site-maven-plugin
                0.12
                
                    Maven artifacts for ${project.version}
                    true
                    ${project.build.directory}/mvn-repo
                    refs/heads/master
                    true
                    
                        **/*
                    
                    mvn-repo
                    sxjlinux
                
                
                    
                        
                            site
                        
                        deploy
                    
                
            
        
    
    
        github
    

8、然后输入: mvn clean deploy命令会提示错误,此错误主要是因为在github中没有设置自己的姓名

[INFO] 
[INFO] --- site-maven-plugin:0.12:site (default) @ path ---
[INFO] Creating 9 blobs
[INFO] Creating tree with 10 blob entries
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  38.520 s
[INFO] Finished at: 2018-12-28T20:53:57+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.github:site-maven-plugin:0.12:site (default) on project path: Error creating commit: Invalid request.
[ERROR] 
[ERROR] For 'properties/name', nil is not a string.
[ERROR] For 'properties/name', nil is not a string. (422)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

如下图所示:

GitHub上创建自己的Maven仓库并引用_第8张图片

9、登录到github中,然后点击Settings,如下图所示:

GitHub上创建自己的Maven仓库并引用_第9张图片

10、在下图中输入自己的姓名

GitHub上创建自己的Maven仓库并引用_第10张图片

11、然后点击update,如下图所示:

GitHub上创建自己的Maven仓库并引用_第11张图片

12、在次使用mvn clean deploy命令,此时就会上传成功,如下图所示:

GitHub上创建自己的Maven仓库并引用_第12张图片

13、然后刷新github网页查看,如下图所示:

GitHub上创建自己的Maven仓库并引用_第13张图片

14、以上都是在子模块中进行的,如果有多个子模块,可以将上边用到的build统一放在项目的根目录中的pom.xml中,而子模块不需要放置build,直接在根目录执行mvn clean deploy命令,mvn会自动将所有子模块打包上传到github中的。

15、当上传成功后,需要在项目中使用发布到github上的jar包,只需要在项目中的pom.xml中添加github仓库,如下代码表示


        
            mvn-repo
            https://raw.github.com/sxjlinux/mvn-repo/master
            
                true
                always
            
        
    

如下图所示:

GitHub上创建自己的Maven仓库并引用_第14张图片

注意:最需要注意的是上传的分支路径,下面的截图我是将分支更改为了master,所以使用的地址是https://raw.github.com/sxjlinux/mvn-repo/master/,如果在mvn-repo有一个test的分支,则网址则写为:https://raw.github.com/sxjlinux/mvn-repo/test/即可。

 

GitHub上创建自己的Maven仓库并引用_第15张图片

 

16、新建一个工程,然后在没加入依赖以前,代码中是显示没有改包的,如下图所示:

 

GitHub上创建自己的Maven仓库并引用_第16张图片

17、在pom.xml加入依赖,如下代码所示:


    
        
            mvn-repo
            https://raw.github.com/sxjlinux/mvn-repo/master
            
                true
                always
            
        
    
    
        
            com.wincom.publicmodel
            path
            2.0
        
    

如下图所示:

GitHub上创建自己的Maven仓库并引用_第17张图片

此处的groupId、artifactId、version是上传git仓库项目中pom.xml中的id和版本号,如:

18、此时代码中即可引用成功,并有提示,如下图所示:

GitHub上创建自己的Maven仓库并引用_第18张图片

GitHub上创建自己的Maven仓库并引用_第19张图片

19、此处运行会打印出当前路径,如下图所示:

GitHub上创建自己的Maven仓库并引用_第20张图片

20、说明可以成功被引用。

具体的代码请看:https://github.com/sxjlinux/mvn-repo-src

 

以下是我多次上传中采的坑出现的错误:

1、执行mvn clean deploy命令出现错误,意思是github的仓库分支必须是以refs/开头的,如下代码所示:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  40.043 s
[INFO] Finished at: 2018-12-28T20:56:50+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.github:site-maven-plugin:0.12:site (default) on project path: Error creating reference: Reference name must start with 'refs/'. (422) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

如下图所示:

GitHub上创建自己的Maven仓库并引用_第21张图片

或者:

[INFO] 
[INFO] --- site-maven-plugin:0.12:site (default) @ path ---
[INFO] Creating 12 blobs
[INFO] Creating tree with 13 blob entries
[INFO] Creating commit with SHA-1: d0eca79926ec6a3a77754fe44936455cfe885c7e
[INFO] Creating reference mvn-repo starting at commit d0eca79926ec6a3a77754fe44936455cfe885c7e
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  50.346 s
[INFO] Finished at: 2018-12-29T22:13:05+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.github:site-maven-plugin:0.12:site (default) on project path: Error creating reference: mvn-repo is not a valid ref name. (422) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

如下图所示:

2、只需要在branch标签的mvn-repo的前边加上refs/即可,如下图所示:

3、再次执行mvn clean deploy命令即可编译成功并上传,如下图所示:

GitHub上创建自己的Maven仓库并引用_第22张图片

4、此时发现仓库中是空的,如下图所示:

GitHub上创建自己的Maven仓库并引用_第23张图片

5、此时还是需要更改配置路径将refs/mvn-repo更改为refs/heads/mvn-repo,如下图所示:

6、再次执行mvn clean deploy命令即可编译成功并上传,如下图所示:

GitHub上创建自己的Maven仓库并引用_第24张图片

7、然后登陆到github即可查看上传的jar项目,如下图所示:

GitHub上创建自己的Maven仓库并引用_第25张图片

GitHub上创建自己的Maven仓库并引用_第26张图片

GitHub上创建自己的Maven仓库并引用_第27张图片

GitHub上创建自己的Maven仓库并引用_第28张图片

 

你可能感兴趣的:(GitHub上创建自己的Maven仓库并引用)