Uso de maven deploy-file
Lendo o doc. do deploy:deploy-file(https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html), parece que os únicos parâmetros obrigatórios são Parâmetros obrigatórios <file>, <repositoryId> and <url>, no entanto, quando eu executo:
mvn deploy:deploy-file -Durl={url} -DrepositoryId={repoId} -Dfile=D:\Users\nunito\IdeaProjects\calzada\target\calzada.zip
Eu tenho este erro:
[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.
Respostas
Normalmente uso deploy:deploy-filena linha de comando, quando tenho um artefato de terceiros sem 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/"
Tudo que você precisa fazer é modificar ae gno início do comando.
Você pode adicionar uma versão v se tiver uma versão específica e colocá-la na parte de lançamento do seu 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/"
A página de "Uso" do plugin (https://maven.apache.org/plugins/maven-deploy-plugin/usage.html) afirma:
Se as seguintes informações obrigatórias não forem especificadas de alguma forma, a meta falhará:
- o arquivo de artefato para implantar
- o grupo, artefato, versão e pacote do arquivo a ser implantado. Eles podem ser obtidos do pomFile especificado e substituídos ou especificados usando a linha de comando. Quando o pomFile contém uma seção pai, o groupId do pai pode ser considerado se o groupId não for especificado posteriormente para o projeto atual ou na linha de comando.
- as informações do repositório: o url para implementar e o mapeamento repositoryId para uma seção do servidor no arquivo settings.xml. Se você não especificar um repositoryId, o Maven tentará extrair as informações de autenticação usando o id 'repositório remoto'.
Portanto, você precisa especificar as coordenadas ou fornecer um arquivo POM.