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>