Maven генерирует файл pom
Я использую maven 3.0.3 и пытаюсь создать 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
Между тем, он возвращает такую ошибку:
[ОШИБКА] Задача, которую вы указали, требует выполнения проекта, но там не является POM в этом каталоге (D:\cobra-0.98.4\lib). Проверьте, пожалуйста, вызывается Maven из правильного каталога. → [Помощь 1]
Почему он запрашивает pom.xml, пока он должен генерировать pom.xml?
Ответы
Ответ 1
Это старый вопрос, но для меня это была серьезная PITA в течение нескольких минут, поэтому я решил поделиться с вами:
Я просто столкнулся с этой проблемой, и я считаю, что проблема, вероятно, зависит от платформы. Реальная подсказка заключалась в том, что решение от Кирилла отвечало не так, как ожидалось: несмотря на мою спецификацию -DgroupId=com.xyz
и -DartifactId=whatever
в командной строке и соответствующую запись в файле POM, банку была установлена в локальное репо под 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.
Ответ 2
Вы уверены, что выполняете цель 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 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 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'
Ответ 3
Я нашел обход. Вам нужно создать простой 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 local repository.
Group Id: org.apache.maven.plugins
Artifact Id: maven-install-plugin
Version: 2.3.1
Goal Prefix: install
...
Ответ 4
Попробуйте запустить его на cmd.exe
или выполнить команду cmd
перед командой mvn
.
Ответ 5
просто перейдите в каталог проекта, где вы можете найти файл pom.xml, затем выполните ту же команду! он работает для меня;)
Ответ 6
Если у вас возникли проблемы с версией Maven в командной строке, вы можете попробовать использовать плагин M2E для eclipse. Это гораздо удобнее для людей, не имеющих большого опыта работы с Maven.
Ответ 7
Это сработало для меня, когда я изменил Powershell на Cygwin. Powershell каким-то образом неправильно разбирает аргумент командной строки.