Je veux créer un référentiel Maven local. J'ai fait les étapes suivantes:
Dans mon projet pom.xml, j'ai fourni
<repositories>
<repository>
<id>repository</id>
<url>http://<my-domain>/localMavenRepository</url>
</repository>
</repositories>
Mais cela ne résout pas les fichiers jar qui se trouvent sur http: // <my-domain>/localMavenRepository
Est-il nécessaire de fournir un référentiel?
Vous ne pouvez pas créer un référentiel privé de cette façon. Consultez cet article: http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository .
J'utilise Artifactory Open Source version.
Je dois m'opposer à Stanley, ça devrait marcher comme ça. Alors que l'article sur les liens Stanley mène à des configurations bien plus puissantes, si vous avez besoin d'un référentiel simple très basique, alors un Apache avec la configuration par défaut peut fournir un référentiel.
Pour configurer un référentiel interne, vous devez simplement disposer d'un emplacement, puis commencer à y copier les artefacts requis en utilisant la même disposition que dans un référentiel distant tel que repo.maven.Apache.org. La source
La clé est que vous avez besoin de la structure de dossiers correcte et que la documentation ne le mentionne pas de manière aussi explicite ... C'est la même structure qu'un référentiel local.
Ajoutez un fichier à votre référentiel comme ceci:
mvn install:install-file -Dfile=YOUR_JAR.jar -DgroupId=YOUR_GROUP_ID -DartifactId=YOUR_ARTIFACT_ID -Dversion=YOUR_VERSION -Dpackaging=jar -DlocalRepositoryPath=/var/www/html/mavenRepository
En supposant que la racine du document pour example.com sur votre Apache soit /var/www/html/
, ce qui ferait que "YOUR_JAR.jar" soit disponible pour maven sur un référentiel configuré avec <url>http://example.com/mavenRepository</url>
Une autre façon consiste à inclure votre fichier jar dans votre référentiel local maven.
Voir ici pour un exemple simple.
Si maven ne crée pas Local Repository, c'est-à-dire le dossier .m2/repository, essayez l'étape ci-dessous.
Dans votre suite Eclipse\Spring, cliquez sur Fenêtre-> Préférences-> Maven-> Paramètres utilisateur-> Cliquez sur Restaurer les valeurs par défaut-> Appliquer-> Appliquer et fermez.
Oui, vous pouvez! Pour un référentiel simple qui ne publie/récupère que des artefacts, vous pouvez utiliser nginx.
Assurez-vous que nginx a activé le module http dav , cela devrait, mais néanmoins le vérifier.
Configurez le module nginx http dav :
Sous Windows: d:\serveurs\nginx\nginx.conf
location / {
# maven repository
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
}
Sous Linux (Ubuntu): / etc/nginx/sites-available/default
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404; # IMPORTANT comment this
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
}
N'oubliez pas de donner des autorisations sur le répertoire dans lequel le dépôt sera situé:
Sudo chmod +777 /var/www/html/repository
Dans le pom.xml
de votre projet, ajoutez la configuration correspondante:
Récupérer des artefacts:
<repositories>
<repository>
<id>repository</id>
<url>http://<your.ip.or.hostname>/repository</url>
</repository>
</repositories>
Publier des artefacts:
<build>
<extensions>
<extension>
<groupId>org.Apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
<version>3.2.0</version>
</extension>
</extensions>
</build>
<distributionManagement>
<repository>
<id>repository</id>
<url>http://<your.ip.or.hostname>/repository</url>
</repository>
</distributionManagement>
Pour publier des artefacts, utilisez mvn deploy
. Pour récupérer des artefacts, Maven le fera automatiquement.
Et là vous avez un simple repo Maven.