私はmaven 3.0.3を使用し、次のようなサードパーティjarのpomを生成しようとしました。
mvn install:install-file -Dfile = Cobra.jar -DgroupId = com.Cobra -DartifactId = Cobra -Dversion = 0.98.4 -Dpackaging = jar -DgeneratePom = true
以下のリンクによると、適切なpom.xmlを生成し、リポジトリにアーティファクトをインストールする必要があります。 http://maven.Apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html
一方、次のようなエラーが返されます。
[エラー]指定した目標を実行するにはプロジェクトが必要ですが、このディレクトリ(D:\ Cobra-0.98.4\lib)にはPOMがありません。正しいディレクトリからMavenを呼び出したことを確認してください。 -> [ヘルプ1]
Pom.xmlを生成する必要があるのに、なぜpom.xmlを要求するのですか?
これは古い質問ですが、数分間私にとって深刻なPITAだったので、共有したいと思いました。
私はこの問題に遭遇しましたが、この問題はおそらくプラットフォームに依存していると考えています。本当のヒントは、Cyrilの答えからの解決策が期待どおりに機能しなかったことでした:コマンドラインで-DgroupId=com.xyz
および-DartifactId=whatever
を指定したにもかかわらず、POMファイルの対応するエントリ、jar com/whatever
の下のローカルリポジトリにインストールされました。
これにより、コマンドライン引数を引用符で囲み、コマンドラインを次のようにフォーマットした結果として正しい結果が得られました(POMファイルを削除した後)。
mvn install:install-file "-Dfile=Cobra.jar" "-DgroupId=com.Cobra" "-DartifactId=Cobra" "-Dversion=0.98.4" "-Dpackaging=jar" "-DgeneratePom=true"
引用の一部は間違いなく冗長ですが、申し訳ありませんが安全ですよね?私はたまたまこのコンピューターでVistaを実行していますが、この問題がこのOSバージョンに固有のものであったとしても驚かないでしょう...ところで、これはMaven v3.0.4で発生しました。
install-file
目標を実行していると確信していますか?私はあなたのコマンドをチェックし、それは私のために動作しますが、空のinstall :install-file
(おそらくこのタイプミスがある)を配置すると、pom.xmlを必要とするinstall
ゴールが使用されます。
-X
パラメーターを使用して、より多くのデバッグ情報を取得してください。
-X,--debug Produce execution debug output
私のシステム
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"
プラグインのインストール
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'
バイパスを見つけました。次のような単純なpom.xmlを作成する必要があります。
<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>
それは完璧ではありませんが、私にとってはうまくいきました。あなたがそれを行うためのより良い方法を見つけたら、私は興味があります。
私の設定:
$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
...
cmd.exeで実行するか、mvnコマンドの前にcmdコマンドを実行してください。
あなたのpom.xmlファイルを見つけることができるプロジェクトディレクトリの下に移動して、同じコマンドを実行してください!わたしにはできる ;)
PowershellをCygwinに変更したとき、私にとってはうまくいきました。 Powershellは何らかの形でコマンドライン引数を誤って解析しています。
Mavenのコマンドラインバージョンに問題がある場合は、Eclipse用のM2Eプラグインを試してください。 Mavenの経験があまりない人にとっては、はるかにユーザーフレンドリーです。