Maven генерирующий POM файл - PullRequest
30 голосов
/ 15 июля 2011

Я использую maven 3.0.3 и попытался сгенерировать pom для стороннего jar следующим образом:

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

Тем временем возвращается такая ошибка:

[ОШИБКА] Для указанной цели требуется выполнить проект, но в этом каталоге нет POM (D: \кобра-0.98.4 \ Lib).Пожалуйста, убедитесь, что вы вызвали Maven из правильного каталога.-> [Помощь 1]

Почему он запрашивает pom.xml, а должен генерировать pom.xml?

Ответы [ 7 ]

77 голосов
/ 26 июня 2012

Это старый вопрос, но для меня это была серьезная PITA в течение нескольких минут, поэтому я решил поделиться:

Я только что столкнулся с этой проблемой и считаю, что проблема, вероятно,зависит от платформы.Настоящая подсказка заключалась в том, что решение из ответа Сирила не сработало, как ожидалось: несмотря на мои указания -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 на этом компьютере и не удивлюсь, если бы эта проблема была характерна именно для этой версии ОС ... кстати, это было с Maven v3.0.4.

8 голосов
/ 16 июля 2011

Вы уверены, что выполняете цель install-file? Я проверил вашу команду, и она работает для меня, но когда я ставлю пробел install :install-file (возможно, у вас есть эта опечатка), будет использоваться цель install, для которой требуется pom.xml.

Попробуйте использовать параметр -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'
4 голосов
/ 18 июля 2011

Я нашел обход. Вам нужно создать простой файл 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
...
1 голос
/ 01 июля 2013

попробуйте запустить его на cmd.exe или выполнить команду cmd перед командой mvn

0 голосов
/ 09 октября 2016

Это сработало для меня, когда я сменил Powershell на Cygwin. Powershell неправильно анализирует аргумент командной строки.

0 голосов
/ 12 апреля 2016

Если у вас возникли проблемы с версией Maven для командной строки, вы можете попробовать подключаемый модуль M2E для eclipse. Он гораздо удобнее для людей, не имеющих большого опыта работы с Maven.

0 голосов
/ 19 февраля 2015

просто зайдите в каталог вашего проекта, где вы можете найти файл pom.xml, затем выполните ту же команду!у меня это работает;)

...