Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
d5aad336
Commit
d5aad336
authored
Sep 08, 2018
by
Achilleas Pipinellis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Copyedit the maven packages repo docs
parent
e02e7855
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
138 additions
and
94 deletions
+138
-94
doc/administration/maven_packages.md
doc/administration/maven_packages.md
+19
-19
doc/user/project/maven_packages.md
doc/user/project/maven_packages.md
+119
-75
No files found.
doc/administration/maven_packages.md
View file @
d5aad336
# GitLab private Maven repository administration
# GitLab private Maven repository administration
> **Notes:**
> **Notes:**
>
- [Introduced][ee-5811] in GitLab 11.3.
-
[
Introduced
][
ee-5811
]
in GitLab 11.3.
> - This document is about the admin guide. Learn how to use GitLab Maven
-
This document is about the admin guide. Learn how to use GitLab Maven
>
repository from [user documentation](../user/project/maven_packages.md).
repository from
[
user documentation
](
../user/project/maven_packages.md
)
.
When enabled, every project in GitLab will have its own space to store Maven packages.
When enabled, every project in GitLab will have its own space to store
[
Maven
](
https://maven.apache.org/
)
packages.
## Enable the Maven repository
## Enabling the Maven repository
NOTE:
**Note:**
Once enabled, newly created projects will have the Packages feature enabled by
default. Existing projects will need to
[
explicitly enabled it
](
../user/project/maven_packages.md#enabling-the-packages-repository
)
.
**Omnibus GitLab installations**
**Omnibus GitLab installations**
...
@@ -23,21 +29,15 @@ When enabled, every project in GitLab will have its own space to store Maven pac
...
@@ -23,21 +29,15 @@ When enabled, every project in GitLab will have its own space to store Maven pac
If you have installed GitLab from source:
If you have installed GitLab from source:
1.
After the installation is complete, you will have to configure the
`packages`
1.
After the installation is complete, you will have to configure the
`packages`
section in
`gitlab.yml`
in order to enable it.
section in
`config/gitlab.yml`
. Set to
`true`
to enable it:
The contents of
`gitlab.yml`
are:
```
packages:
enabled: true
```
where:
| Parameter | Description |
```yaml
| --------- | ----------- |
packages:
|
`enabled`
|
`true`
or
`false`
. Enables the packages repository in GitLab. By default this is
`false`
. |
enabled: true
```
1.
[Restart GitLab] for the changes to take effect.
[
reconfigure gitlab
]:
restart_gitlab.md#omnibus-gitlab-reconfigure
"How to reconfigure Omnibus GitLab"
[
reconfigure gitlab
]:
restart_gitlab.md#omnibus-gitlab-reconfigure
"How to reconfigure Omnibus GitLab"
[
restart gitlab
]:
restart_gitlab.md#omnibus-gitlab-reconfigure
"How to reconfigure Omnibus GitLab"
[
ee-5811
]:
https://gitlab.com/gitlab-org/gitlab-ee/issues/5811
[
ee-5811
]:
https://gitlab.com/gitlab-org/gitlab-ee/issues/5811
doc/user/project/maven_packages.md
View file @
d5aad336
# GitLab Maven Packages repository
# GitLab Maven Packages repository
**[PREMIUM]**
## Configure project to use GitLab Maven Repository URL
> Introduced in [GitLab Premium](https://about.gitlab.com/pricing/) 11.3.
To download packages from GitLab, you need
`repository`
section in your
`pom.xml`
.
With the GitLab
[
Maven
](
https://maven.apache.org
)
Packages repository, every
project can have its own space to store its Maven artifacts.
## Enabling the Packages repository
NOTE:
**Note:**
This option is available only if your GitLab administrator has
[
enabled the Packages repository
](
../../administration/maven_packages.md
)
.
In order to use the GitLab Maven Packages repository, you must enable the
general Packages repository. To enable (or disable) it:
1.
Navigate to your project's
**Settings > General > Permissions**
.
1.
Find the "Packages" feature and enable it.
1.
Click on
**Save changes**
for the changes to take effect.
You should then be able to see the
**Packages**
section on the left sidebar.
Next, you must configure your project to authorize with the Maven repository.
## Authorizing with the Maven repository
If a project is private or you want to upload Maven artifacts to GitLab,
credentials will need to be provided for authorization:
1.
Create a new
[
personal access token
](
../profile/personal_access_tokens.md
)
with the
`api`
scope.
1.
Add a corresponding section to your
[
`settings.xml`
](
https://maven.apache.org/settings.html
)
file:
```xml
<settings>
<servers>
<server>
<id>gitlab-maven</id>
<configuration>
<httpHeaders>
<property>
<name>Private-Token</name>
<value>REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
```
You should now be able to upload Maven artifacts to your project.
## Configuring your project to use the GitLab Maven repository URL
To download packages from GitLab, you need a
`repository`
section in your
`pom.xml`
file:
```
xml
```
xml
<repositories>
<repositories>
...
@@ -13,10 +65,15 @@ To download packages from GitLab, you need `repository` section in your `pom.xml
...
@@ -13,10 +65,15 @@ To download packages from GitLab, you need `repository` section in your `pom.xml
</repositories>
</repositories>
```
```
To upload packages to GitLab, you need a
`distributionManagement`
section in your
`pom.xml`
.
Similarly, to upload packages to GitLab, you need a
`distributionManagement`
section in your
`pom.xml`
file:
```
xml
```
xml
<distributionManagement>
<distributionManagement>
<repository>
<id>
gitlab-maven
</id>
<url>
https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven
</url>
</repository>
<snapshotRepository>
<snapshotRepository>
<id>
gitlab-maven
</id>
<id>
gitlab-maven
</id>
<url>
https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven
</url>
<url>
https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven
</url>
...
@@ -24,74 +81,61 @@ To upload packages to GitLab, you need a `distributionManagement` section in you
...
@@ -24,74 +81,61 @@ To upload packages to GitLab, you need a `distributionManagement` section in you
</distributionManagement>
</distributionManagement>
```
```
In both examples, replace
`PROJECT_ID`
with your project ID.
The
`id`
must be the same with what you
If you have a private GitLab installation, replace
`gitlab.com`
with your domain name.
[
defined in `settings.xml`
](
#authorizing-with-the-maven-repository
)
.
## Configure repository access
In both examples, replace
`PROJECT_ID`
with your project ID which can be found
on the home page of your project.
If a project is private, credentials will need to be provided for authorization.
The preferred way to do this, is by using a
[
personal access tokens
][
pat
]
.
If you have a private GitLab installation, replace
`gitlab.com`
with your
You can add a corresponding section to your
`settings.xml`
file:
domain name.
## Creating maven packages with GitLab CI/CD
```
xml
<settings>
Once you have your repository configured to use the GitLab Maven Packages repository,
<servers>
you can configure GitLab CI/CD to build new packages automatically. The example below
<server>
shows how to create a new package each time the
`master`
branch is updated:
<id>
gitlab-maven
</id>
<configuration>
1.
Create a
`ci_settings.xml`
file that will serve as Maven's
`settings.xml`
file.
<httpHeaders>
Add the server section with the same id you defined in your
`pom.xml`
file.
<property>
For example, in our case it's
`gitlab-maven`
:
<name>
Private-Token
</name>
<value>
REPLACE_WITH_YOUR_PRIVATE_TOKEN
</value>
```xml
</property>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
</httpHeaders>
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
</configuration>
<servers>
</server>
<server>
</servers>
<id>gitlab-maven</id>
</settings>
<configuration>
```
<httpHeaders>
<property>
## Create maven packages with GitLab CI
<name>Job-Token</name>
<value>CI_JOB_TOKEN</value>
Once you have your repository configured to use GitLab Maven Packages repository,
</property>
you can configure GitLab CI to build new packages automatically. The example below
</httpHeaders>
shows you how to create a new package each time the master branch is updated.
</configuration>
</server>
1
\.
Create a
`ci_settings.xml`
file specially for GitLab CI and put it into your repository.
</servers>
Add server section there with same id as you used for GitLab repository in your
`pom.xml`
file.
</settings>
For example, in our case its
`gitlab-maven`
.
```
```
xml
1.
Add a
`deploy`
job to your
`.gitlab-ci.yml`
file:
<settings
xmlns=
"http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
>
```yaml
<servers>
deploy:
<server>
image: maven:3.3.9-jdk-8
<id>
gitlab-maven
</id>
script:
<configuration>
- 'cp ci_settings.xml /root/.m2/settings.xml'
<httpHeaders>
- 'sed -i "s/CI_JOB_TOKEN/${CI_JOB_TOKEN}/g" /root/.m2/settings.xml'
<property>
- 'mvn deploy'
<name>
Job-Token
</name>
only:
<value>
CI_JOB_TOKEN
</value>
- master
</property>
```
</httpHeaders>
</configuration>
1.
Push those files to your repository.
</server>
</servers>
The next time the
`deploy`
job runs, it will copy
`ci_settings.xml`
to the
</settings>
user's home location (in this case the user is
`root`
since it runs in a
```
Docker container), and
`sed`
will replace the placeholder
`CI_JOB_TOKEN`
value with the contents of the actual
[
`CI_JOB_TOKEN`
2
\.
Add
`deploy`
section to your
`.gitlab-ci.yml`
file.
environment variable
](
../../ci/variables/README.md#predefined-variables-environment-variables
)
.
```
deploy:
script:
- 'cp ci_settings.xml /root/.m2/settings.xml'
- 'sed -i "s/CI_JOB_TOKEN/${CI_JOB_TOKEN}/g" /root/.m2/settings.xml'
- 'mvn deploy'
only:
- master
image: maven:3.3.9-jdk-8
```
[
pat
]:
../profile/personal_access_tokens.md
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment