Utilisation de maven deploy-file

Aug 20 2020

Lire la doc. du deploy:deploy-file(https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html), il semble que les seuls paramètres requis soient des paramètres obligatoires <file>, <repositoryId> and <url>, néanmoins lorsque je lance:

mvn deploy:deploy-file -Durl={url} -DrepositoryId={repoId} -Dfile=D:\Users\nunito\IdeaProjects\calzada\target\calzada.zip

J'ai eu cette erreur:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project oib-kw-guards-web: The artifact i
nformation is incomplete or not valid:
[ERROR]   [0]  'groupId' is missing.
[ERROR]   [1]  'artifactId' is missing.
[ERROR]   [2]  'version' is missing.

Réponses

3 VonC Aug 22 2020 at 14:42

J'utilise habituellement deploy:deploy-fileen ligne de commande, quand j'ai un artefact tiers sans son pom.xml:

cmd /v /c "set a=an-artifact-name&& set g=com.company.xxx&& \
mvn deploy:deploy-file -Dfile=C:\path\to\!a!.jar -Dpackaging=jar -DgroupId=!g! -DartifactId=!a! \
-Dversion=1.0-DEV-SNAPSHOT -DrepositoryId=nexus \
-Durl=http://company.com/nexus/content/repositories/company-snapshots/"

Tout ce que vous avez à faire est de modifier aet gau début de la commande.

Vous pouvez ajouter une version v si vous avez une version spécifique, et la mettre dans la partie release de votre Nexus:

cmd /v /c "set a=an-artifact-name&& set g=com.company.xxx&& && set v=1.2.3&& \
mvn deploy:deploy-file -Dfile=C:\path\to\!a!.jar -Dpackaging=jar -DgroupId=!g! -DartifactId=!a! \
-Dversion=!v! -DrepositoryId=nexus \
-Durl=http://company.com/nexus/content/repositories/company-releases/"
2 JFabianMeier Aug 25 2020 at 15:00

La page "Utilisation" du plugin (https://maven.apache.org/plugins/maven-deploy-plugin/usage.html) États:

Si les informations requises suivantes ne sont pas spécifiées d'une manière ou d'une autre, l'objectif échouera:

  • le fichier d'artefact à déployer
  • le groupe, l'artefact, la version et le packaging du fichier à déployer. Ceux-ci peuvent être extraits du pomFile spécifié, et remplacés ou spécifiés à l'aide de la ligne de commande. Lorsque le pomFile contient une section parent, le groupId du parent peut être pris en compte si le groupId n'est pas spécifié davantage pour le projet en cours ou sur la ligne de commande.
  • les informations du référentiel: l'url vers laquelle déployer et le mappage repositoryId vers une section serveur dans le fichier settings.xml. Si vous ne spécifiez pas un repositoryId, Maven essaiera d'extraire les informations d'authentification à l'aide de l'ID 'remote-repository'.

Vous devez donc soit spécifier les coordonnées, soit donner un fichier POM.