views:

13385

answers:

5

Hi,

I've encountered some errors when I tried to install an artifact manually with Maven 2. I wanted to install a jar from a local directory with the command

mvn install:install-file -Dfile=jta-1.0.1B.jar

But Maven gave a build error which reads like:

Invalid task '.01B.jar': you must
specify a valid lifecycle phase, or a
goal in the format plugin:goal or
pluginGroupId:pluginArtifactId:pluginVersion:goal

Is there a mistake with my command?

+10  A: 

Hello,

You need to indicate the groupId, the artifactId and the version for your artifact:

mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dpackaging=jar -Dversion=1.0.1B -Dfile=jta-1.0.1B.jar -DgeneratePom=true
romaintaz
-Dpackaging=jar or similar is missing
kaboom
@kaboom No! By default, the packaging is jar, so you don't need to specify this in thé command...
romaintaz
strange. Din't work for me somehow.
kaboom
does not work for me too: Missing group, artifact, version, or packaging information
Ahmet Alp Balkan
@romaintaz kaboom is correct; you need -Dpackaging=jar (or whatever the type is) otherwise you will get an error about "'packaging' is missing."
Jack
Ok, then I've edited my entry!
romaintaz
+1  A: 

I had to add packaging, so:

mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dfile=jta-1.0.1B.jar -DgeneratePom=true -Dpackaging=jar

+10  A: 

According to maven's Guide to installing 3rd party JARs, the command is:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

You need indeed the packaging option. This answers the original question.

Now, in your context, you are fighting with a jar provided by Sun. You should read the Coping with Sun JARs page too. There, you'll learn how to help maven to provide you better information about Sun jars location and how to add Java.net Maven 2 repository which contains jta-1.0.1B.jar. Add this in your settings.xml (not portable) or pom.xml (portable):

  <repositories>
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/&lt;/url&gt;
      <layout>default</layout>
    </repository>
  </repositories>
Pascal Thivent
A: 

If you ever get similar errors when using Windows PowerShell, you should try Windows' simple command-line. I didn't find out what caused this, but PowerShell seems to interpret some of Maven's parameters.

Koraktor
Look at S. Bollweber answer above. And at least TakeCommand expresses the same bahaviour.
Martin
+1  A: 

Answer is to escape the dash!

http://www.mail-archive.com/[email protected]/msg83991.html

S. Bollweber
Damm me. that was it. all the -D parameters must be enclosed in `.
Martin