2011-07-15 19 views
27

utilizo experto 3.0.3 y he tratado de generar pom para el tarro de terceros, como esto:experto en la generación de archivo pom

mvn install:install-file -Dfile=cobra.jar -DgroupId=com.cobra -DartifactId=cobra -Dversion=0.98.4 -Dpackaging=jar -DgeneratePom=true

Según siguiente enlace debe generar pom.xml adecuada e instalar el artefacto en el repo. http://maven.apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

Mientras tanto, devolver un error de este tipo:

[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (D:\cobra-0.98.4\lib). Please verify you invoked Maven from the correct directory. -> [Help 1]

¿Por qué está pidiendo pom.xml mientras pom.xml debe generar?

+0

Acabo de ejecutar esta línea en cmd en Windows 7 y funciona para Maven 3.0.5. Tal vez lo arreglaron en esta versión. – firen

Respuesta

67

Ésta es una cuestión de edad, sino que era un PITA seria para mí durante unos minutos, así que pensé que me gustaría compartir:

Me acabo de encontrar con este problema , y creo que el problema probablemente depende de la plataforma. El verdadero síntoma fue que la solución de la respuesta de Cyril no funcionaba como se esperaba: a pesar de mi especificación de -DgroupId=com.xyz y -DartifactId=whatever en la línea de comandos y la entrada correspondiente en el archivo POM, el jar se instaló en el repositorio local bajo com/whatever .

Esto me llevó a experimentar con citar los argumentos de línea de comandos, y el resultado correcto eventual de formatear la línea de comandos como esto (después de borrar el archivo POM):

mvn install:install-file "-Dfile=cobra.jar" "-DgroupId=com.cobra" "-DartifactId=cobra" "-Dversion=0.98.4" "-Dpackaging=jar" "-DgeneratePom=true" 

Algunos de la cita es, sin duda, redundante, pero es mejor prevenir que lamentar, ¿verdad? Resulta que estoy ejecutando Vista en esta computadora, y no me sorprendería si este problema fuera específico de esta versión del sistema operativo ... por cierto, esto fue con Maven v3.0.4.

+7

Qué mensaje de error de basura "El objetivo que especificó requiere un proyecto para ejecutar ..." es. –

+5

+1. Esto funciona para mí cuando uso consola. CMD funciona como se espera sin citar. – flesk

+0

Similar a lo que escribió flesk, para Windows obtengo ese error en powershell, no en cmd, gracias flesk –

8

¿Estás seguro de que estás ejecutando el objetivo install-file? Revisé tu comando y me funciona, pero cuando coloque un install :install-file en blanco (tal vez tengas este error) se usará el objetivo install que necesita un pom.xml.

intenta utilizar el parámetro -X para obtener más información de depuración:

-X,--debug  Produce execution debug output 

Mi sistema

Maven

c:\>mvn -version 

Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) 
Maven home: C:\progs\apache-maven-3.0.3 
Java version: 1.6.0_21, vendor: Sun Microsystems Inc. 
Java home: c:\Program Files (x86)\Java\jdk1.6.0_21\jre 
Default locale: de_DE, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows" 

instalar el plugin

c:\>mvn -Dplugin=install help:describe 

Name: Maven Install Plugin 
Description: Copies the project artifacts to the user's local repository. 
Group Id: org.apache.maven.plugins 
Artifact Id: maven-install-plugin 
Version: 2.3.1 
Goal Prefix: install 

This plugin has 3 goals: 

install:help 
    Description: Display help information on maven-install-plugin. 
    Call 
     mvn install:help -Ddetail=true -Dgoal=<goal-name> 
    to display parameter details. 

install:install 
    Description: Installs the project's main artifact in the local repository. 

install:install-file 
    Description: Installs a file in the local repository. 

For more information, run 'mvn help:describe [...] -Ddetail' 
+0

No existe un error tipográfico. ¿Puedes decirme la versión de maven que usas? – firen

+0

@firen Ver mi actualización de la respuesta. – FrVaBe

+0

Tengo exactamente las mismas versiones ... No tengo idea, tal vez deba depurar el código maven y ver qué está sucediendo allí. – firen

3

Encontré una derivación. Es necesario crear un pom.xml simple como esto:

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.cobra</groupId> 
    <artifactId>cobra</artifactId> 
    <version>0.98.4</version> 
</project> 

No es perfecto, pero que ha funcionado para mí. Si encuentras una mejor manera de hacerlo, estoy interesado.

Mi config:

$mvn -version 
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) 
Maven home: /usr/local/maven 
Java version: 1.6.0_20, vendor: Sun Microsystems Inc. 
Java home: /usr/local/jdk1.6.0_20/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "2.6.32-25-generic-pae", arch: "i386", family: "unix" 

$mvn -Dplugin=install help:describe 
... 
Name: Maven Install Plugin 
Description: Copies the project artifacts to the user's local repository. 
Group Id: org.apache.maven.plugins 
Artifact Id: maven-install-plugin 
Version: 2.3.1 
Goal Prefix: install 
... 
1

intente ejecutarlo en cmd.ejecute exe o excute cmd antes del comando mvn

+0

Tuve el mismo problema, esto solucionará. – Sin2

0

¡simplemente vaya a su directorio de proyectos donde puede encontrar su archivo pom.xml y luego ejecute el mismo comando! funciona para mí;)

0

Si tiene problemas con la versión de línea de comandos de Maven, puede probar el plugin M2E para eclipse. Es mucho más fácil de usar para personas sin mucha experiencia con Maven.

0

Me funcionó cuando cambié Powershell a Cygwin. Powershell está de alguna manera analizando incorrectamente el argumento de la línea de comando.

Cuestiones relacionadas