githubを利用して個人maven倉庫を構築する
原文出典: hengyunabc
に縁を付ける
以前、オープンソースプロジェクトがgithubでmaven倉庫を作っているのを見て、自分も作っていると思いました.研究して、記録します.
簡単に言えば、3つのステップがあります. deployからローカルディレクトリ へローカルディレクトリをgtihubに提出する githubアドレスを倉庫アドレス として構成する.
local file mavenウェアハウスの構成
deployからローカルへ
mavenはhttp,ftp,sshなどのdeployを介してリモートサーバにも、ローカルファイルシステムにもdeployを介してもよい.
例えば、プロジェクトdeployを
1
2
3
4
5
6
コマンドラインを使用すると、次のようになります.
1
プロジェクトで明示的な構成を避けるために、コマンドラインをdeployに使用することをお勧めします.
https://maven.apache.org/plugins/maven-deploy-plugin/
https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
ローカル倉庫をgithubに提出する
上はプロジェクトdeployをローカルディレクトリ
Githubにプロジェクトを新規作成し、
1
2
3
4
5
6
最終的な効果は私の個人倉庫を参考にすることができます.
https://github.com/hengyunabc/maven-repo
github maven倉庫の使用
githubは
1
2
3
4
5
6
ディレクトリの表示と検索
注目すべきは、githubはセキュリティ上の理由でrawファイルのダウンロードと元のgithubドメイン名を分離しているが、
例えばこのファイル
ブラウザのアドレスは次のとおりです.
https://github.com/hengyunabc/maven-repo/blob/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT/mybatis-ehcache-spring-0.0.1-20150804.095005-1.jar
maven倉庫urlは次のとおりです.
https://raw.githubusercontent.com/hengyunabc/maven-repo/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT/mybatis-ehcache-spring-0.0.1-20150804.095005-1.jar
maven倉庫作業のメカニズム
以下、maven倉庫の動作の原理を紹介します.典型的なmaven依存の下には、この3つのファイルがあります.
https://github.com/hengyunabc/maven-repo/tree/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT
1
2
3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ここでmd 5,sha 1検証ファイルは、このmetaファイルの完全性を保証するために使用される.
mavenはプロジェクトを作成する際に
だから簡単にjarパッケージをgithubに置けば済むわけではありません.必ずローカルDeployで
参照先:http://maven.apache.org/ref/3.2.2/maven-repository-metadata/repository-metadata.html
mavenの倉庫関係
https://maven.apache.org/repository/index.html
ローカル・ウェアハウスの使用の構成
ローカルfileウェアハウスを使用するには、プロジェクトのpom.xmlで次のように構成します.
1
2
3
4
5
6
注意事項
mavenのrepositoryには優先度の構成はなく、一部の依存に対してrepositoryを単独で構成することもできません.したがって、プロジェクトに複数のrepositoryが構成されている場合、初回作成時に依存を順次ダウンロードしようとします.見つからない場合は、次を試してみると、プロセス全体が長くなります.
だから、できるだけ多くの依存は同じ倉庫に置いて、プロジェクトごとに自分の倉庫を持ってはいけません.
QQ技術交流群290551701
に縁を付ける
以前、オープンソースプロジェクトがgithubでmaven倉庫を作っているのを見て、自分も作っていると思いました.研究して、記録します.
簡単に言えば、3つのステップがあります.
local file mavenウェアハウスの構成
deployからローカルへ
mavenはhttp,ftp,sshなどのdeployを介してリモートサーバにも、ローカルファイルシステムにもdeployを介してもよい.
例えば、プロジェクトdeployを
/home/hengyunabc/code/maven-repo/repository/
ディレクトリの下に置きます.1
2
3
4
5
6
<distributionManagement>
<repository>
<id>hengyunabc-mvn-repo</id>
<url>file:/home/hengyunabc/code/maven-repo/repository/</url>
</repository>
</distributionManagement>
コマンドラインを使用すると、次のようになります.
1
mvn deploy -DaltDeploymentRepository=hengyunabc-mvn-repo::
default
::file:/home/hengyunabc/code/maven-repo/repository/
プロジェクトで明示的な構成を避けるために、コマンドラインをdeployに使用することをお勧めします.
https://maven.apache.org/plugins/maven-deploy-plugin/
https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
ローカル倉庫をgithubに提出する
上はプロジェクトdeployをローカルディレクトリ
home/hengyunabc/code/maven-repo/repository
に、下はこのディレクトリをgithubに提出します.Githubにプロジェクトを新規作成し、
home/hengyunabc/code/maven-repo
のファイルをgtihubに提出します.1
2
3
4
5
6
cd /home/hengyunabc/code/maven-repo/
git init
git add repository/*
git commit -m
'deploy xxx'
git remote add origin git
@github
.com:hengyunabc/maven-repo.git
git push origin master
最終的な効果は私の個人倉庫を参考にすることができます.
https://github.com/hengyunabc/maven-repo
github maven倉庫の使用
githubは
raw.githubusercontent.com
というドメイン名を使用してrawファイルのダウンロードに使用しているからです.だからこのmaven倉庫を使ってpom.xmlに追加すれば:1
2
3
4
5
6
<repositories>
<repository>
<id>hengyunabc-maven-repo</id>
<url>https:
//raw.githubusercontent.com/hengyunabc/maven-repo/master/repository</url>
</repository>
</repositories>
ディレクトリの表示と検索
注目すべきは、githubはセキュリティ上の理由でrawファイルのダウンロードと元のgithubドメイン名を分離しているが、
raw.githubusercontent.com
というドメイン名はディレクトリブラウズをサポートしていないことだ.だから、ファイルディレクトリをブラウズしたり、検索したりするにはgithubドメイン名の下の倉庫に直接行って見ることができます.例えばこのファイル
mybatis-ehcache-spring-0.0.1-20150804.095005-1.jar
:ブラウザのアドレスは次のとおりです.
https://github.com/hengyunabc/maven-repo/blob/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT/mybatis-ehcache-spring-0.0.1-20150804.095005-1.jar
maven倉庫urlは次のとおりです.
https://raw.githubusercontent.com/hengyunabc/maven-repo/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT/mybatis-ehcache-spring-0.0.1-20150804.095005-1.jar
maven倉庫作業のメカニズム
以下、maven倉庫の動作の原理を紹介します.典型的なmaven依存の下には、この3つのファイルがあります.
https://github.com/hengyunabc/maven-repo/tree/master/repository/io/github/hengyunabc/mybatis-ehcache-spring/0.0.1-SNAPSHOT
1
2
3
maven-metadata.xml
maven-metadata.xml.md5
maven-metadata.xml.sha1
maven-metadata.xml
には、最後のdeployのバージョンと時間が記録されています.1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<metadata modelVersion=
"1.1.0"
>
<groupId>io.github.hengyunabc</groupId>
<artifactId>mybatis-ehcache-spring</artifactId>
<version>
0.0
.
1
-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>
20150804.095005
</timestamp>
<buildNumber>
1
</buildNumber>
</snapshot>
<lastUpdated>
20150804095005
</lastUpdated>
</versioning>
</metadata>
ここでmd 5,sha 1検証ファイルは、このmetaファイルの完全性を保証するために使用される.
mavenはプロジェクトを作成する際に
maven-metadata.xml
をリクエストし、見つからない場合はjarファイルを直接リクエストし、jarファイルをダウンロードする際にもjarのmd 5,sha 1ファイルをダウンロードしようとします.maven-metadata.xml
ファイルは重要です.このファイルが最新のjarバージョンを指定していないと、リモートウェアハウスのjarがバージョンを更新しても、ローカルmavenの作成時に-Uパラメータを使用しても、最新のjarを引き出すことはありません.だから簡単にjarパッケージをgithubに置けば済むわけではありません.必ずローカルDeployで
maven-metadata.xml
ファイルを生成しgithubにアップロードしなければなりません.参照先:http://maven.apache.org/ref/3.2.2/maven-repository-metadata/repository-metadata.html
mavenの倉庫関係
https://maven.apache.org/repository/index.html
ローカル・ウェアハウスの使用の構成
ローカルfileウェアハウスを使用するには、プロジェクトのpom.xmlで次のように構成します.
1
2
3
4
5
6
<repositories>
<repository>
<id>hengyunabc-maven-repo</id>
<url>file:/home/hengyunabc/code/maven-repo/repository/</url>
</repository>
</repositories>
注意事項
mavenのrepositoryには優先度の構成はなく、一部の依存に対してrepositoryを単独で構成することもできません.したがって、プロジェクトに複数のrepositoryが構成されている場合、初回作成時に依存を順次ダウンロードしようとします.見つからない場合は、次を試してみると、プロセス全体が長くなります.
だから、できるだけ多くの依存は同じ倉庫に置いて、プロジェクトごとに自分の倉庫を持ってはいけません.
QQ技術交流群290551701