添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • ZollltyMVC (A Java MVC framework)
  • zollty-tmpl.js (A JS Template Engine)
  • Jretty-log (A logging library for Java)
  • Jretty-core (A simple Java util's library)
  • Kafka-xclient (A third-part kafka-clients)

  • 一、无源码,直接以文件的形式发布jar包(deploy-file)


    情况一:前提,有项目的pom文件(如果没有pom文件,可以从jar包中提取出来),自动出pom文件读取groupId等信息

    (如果没有pom文件,可以看下面的情况二)


    我已经写成了标准脚本,并经常使用,分享出来:

    1、deploy-jar.bat

    @echo off
    echo "=== start to deploy jar... ==="
    call mvn deploy:3.0.0-M1:deploy-file -X ^
        -Durl=file:///D:/0sync-local/git/repository ^
        -DrepositoryId=git-repo ^
        -Dfile=./apollo-client-0.10.3-SNAPSHOT.jar ^
        -DpomFile=./apollo-client-0.10.3-SNAPSHOT.pom ^
        -Dsources=./apollo-client-0.10.3-SNAPSHOT-sources.jar
    ::    -Djavadoc=./apollo-client-0.10.3-SNAPSHOT-javadoc.jar
    echo "=== deploy jar finished ... ==="
    pause

    如果是远程仓库的话,将上面的url替换成远程仓库地址即可,例如

    -Durl=http://10.2.10.22:8081/nexus/content/repositories/releases/

    注意 pomFile 虽然也是可选,但是建议加上,否则无法自动识别依赖包,需要手动添加依赖。


    2、deploy-pom.bat

    @echo off
    echo "=== start to deploy pom... ==="
    call mvn deploy:deploy-file -X ^
        -Durl=file:///D:/0sync-local/git/repository ^
        -DrepositoryId=git-repo ^
        -Dfile=./apollo-0.10.3-SNAPSHOT.pom ^
        -DpomFile=./apollo-0.10.3-SNAPSHOT.pom ^
        -Dpackaging=pom
    echo "=== deploy pom finished ... ==="
    pause


    具体用法可以参见官方文档:

    http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

    http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-sources-javadoc.html



    情况二:有无pom文件都可以,手动指定groupId等信息

    deploy-jar.bat

    @echo off
    :: ****************************************************************************
    :: Title :  deploy jar to maven repositories                                                      
    :: Usage :  根据需要自己修改                                                                      
    :: Notes :                      
    ::   1. 参数pomFile、sources、javadoc为可选,但是建议都有
    ::   2. 区分SNAPSHOT版本和RELEASE版本,repository和url不一样
    ::   3. 参见官方文档:http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
    ::   4. 建议使用 deploy-jar-func-version.bat ,更加方便。                                                
    :: Requires: Maven > mvn                                                       
    :: Returns:  
    ::                                                                            *
    :: Author:   Zollty Tsou                                                      *
    :: Version:  1.0.0                                                            *
    :: Date:     03/05/2016                                                       *
    :: Link:     https://github.com/zollty/tool-libs                              *
    :: ****************************************************************************
    echo "=== Start to deploy jars... ==="
    set   releasesRepoId=pre-nexus-releases
    set  releasesRepoUrl=http://10.2.10.22:8081/nexus/content/repositories/releases/
    set  snapshotsRepoId=pre-nexus-snapshots
    set snapshotsRepoUrl=http://10.2.10.22:8081/nexus/content/repositories/snapshots/
    set base_dir=C:/Users/zollty/lib
    call mvn deploy:deploy-file ^
    -DartifactId=api-base ^
    -Dversion=1.1 ^
    -DgroupId=org.zollty ^
    -Dfile=%base_dir%/api-base-1.1.jar ^
    -DpomFile=%base_dir%/pom.xml ^
    -Dsources=%base_dir%/api-base-1.1-sources.jar ^
    -Djavadoc=%base_dir%/api-base-1.1-javadoc.jar ^
    -DrepositoryId=%releasesRepoId% -Durl=%releasesRepoUrl%
    call mvn deploy:deploy-file ^
    -DartifactId=jretty-log ^
    -Dversion=1.2-SNAPSHOT ^
    -DgroupId=org.jretty ^
    -Dfile=C:/Users/zollty/jretty-log-1.2-SNAPSHOT.jar ^
    -DpomFile=%base_dir%/pom.xml ^
    -Dsources=%base_dir%/jretty-log-1.2-SNAPSHOT-sources.jar ^
    -Djavadoc=%base_dir%/jretty-log-1.2-SNAPSHOT-javadoc.jar ^
    -DrepositoryId=%snapshotsRepoId% -Durl=%snapshotsRepoUrl%
    echo "=== deploy jars finished ... ==="
    pause


    二、以源码的方式打包并发布

    方法1:配置如下pom.xml,然后直接运行 mvn deploy

    <distributionManagement>
      <repository>
        <id>git-repo</id>
        <url>file:///D:/0sync-local/git/repository</url>
      </repository>
    </distributionManagement>

    方法2:不配置xml,直接在命令行配置仓库地址,如下:

    mvn deploy -DaltDeploymentRepository=my-git-repo::default::file:///D:/0sync-local/git/repository

    同上,如果是远程仓库的话,将上面的url替换成远程仓库地址即可,例如

    -Durl=http://10.2.10.22:8081/nexus/content/repositories/releases/


    三、如果要通过ssh或者ftp发布

    只需要将上面的“file://”协议改一下,并引入额外的maven插件即可。

    参见官方文档: http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html



    四、利用git或者其他http服务搭建maven远程仓库

    上面已经说了如何将jar包发布到本地目录,只需要把文件同步到git仓库即可。然后在pom.xml配置git仓库地址即可,例如:

    <repositories>
      <repository>
        <id>zollty-git-repo</id>
        <url>https://raw.githubusercontent.com/zollty/maven-repo/master</url>
      </repository>
    </repositories>

    还可以,建一个snapshots、releases的分支来分别存放snapshots、releases类型的jar包。

    推荐这种用法,例如:

    <repositories>
      <repository>
         <id>git-maven-repo-snapshots</id>
         <url>https://gitee.com/maven-repo/repository/raw/snapshots</url>
      </repository>
      <repository>
         <id>git-maven-repo-releases</id>
         <url>https://gitee.com/maven-repo/repository/raw/releases</url>
      </repository>
    </repositories>