web-dev-qa-db-ja.com

Maven生成pomファイル

私は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を要求するのですか?

30
firen

これは古い質問ですが、数分間私にとって深刻な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で発生しました。

78
Keith Layne

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'
8
FrVaBe

バイパスを見つけました。次のような単純な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
...
4
Cyril

cmd.exeで実行するか、mvnコマンドの前にcmdコマンドを実行してください。

1
Sin2

あなたのpom.xmlファイルを見つけることができるプロジェクトディレクトリの下に移動して、同じコマンドを実行してください!わたしにはできる ;)

0
Fakher

PowershellをCygwinに変更したとき、私にとってはうまくいきました。 Powershellは何らかの形でコマンドライン引数を誤って解析しています。

0
Matthew Molloy

Mavenのコマンドラインバージョンに問題がある場合は、Eclipse用のM2Eプラグインを試してください。 Mavenの経験があまりない人にとっては、はるかにユーザーフレンドリーです。

0
Nathan Meyer