In this how-to it is being explained how to create a maven repository on github and how to use an existing one.
-
Clone your original project to a new local repository (change GROUP-NAME and PROJECT-NAME)
git clone https://github.com/GROUP-NAME/PROJECT-NAME.git PROJECT-NAME-maven2
-
Go to the clonned repository (use your PROJECT-NAME-maven2)
cd PROJECT-NAME-maven2
-
Create a branch for maven files
git branch maven2
-
Switch to this new branch
git checkout maven2
-
Remove project original files, this branch is just for releases
rm -R ALL-PROJECT-SUB-FOLDERS
rm ALL-PROJECT-FILES
-
run mvn install for jar creation (change GROUP, ARTIFACT-NAME, ARTIFACT-VERSION, PATH-TO-THE-JAR and PATH-TO-EXISTING-POM). See *1 for details.
mvn install:install-file -DgroupId=GROUP -DartifactId=ARTIFACT-NAME -Dversion=ARTIFACT-VERSION -Dfile=PATH-TO-THE-JAR -Dpackaging=jar -DlocalRepositoryPath=. -DcreateChecksum=true -DgeneratePom=true
-
Add all files to be commited
git add .
-
Commit these changes
git commit -m "Released version ARTIFACT-VERSION"
-
Push this commit. After that your maven structure for you project can be reached by github raw data address https://github.com/GROUP-NAME/PROJECT-NAME/raw/maven2
git push origin maven2
-
On gradle you can add this repository on 'repositories'
maven { url "https://github.com/ORGANIZATION-NAME/PROJECT-NAME/raw/maven2" }
- *1 Your PATH-TO-THE-JAR will be something like:
../PROJECT-NAME/build/libs/ARTIFACT-NAME-ARTIFACT-VERSION.jar
. Use-DpomFile=PATH-TO-EXISTING-POM
instead of-DgeneratePom=true
if you already have a POM.
If you already have a repository using this way explained above, you can use the following commands to setup another machine in order to update your repository.
-
Clone your maven2 branch to a local folder which name is followed by "-maven2" (change GROUP-NAME and PROJECT-NAME)
git clone https://github.com/GROUP-NAME/PROJECT-NAME.git PROJECT-NAME-maven2 --branch maven2
-
To update your maven2 repo, follow steps from run mvn install for jar creation
This looks exactly like what I'm looking for! the only thing I'm worried about is that my project is open-source and I don't want my github keys exposed...