2011-07-15 39 views
27

tôi sử dụng maven 3.0.3 và đã cố gắng để tạo ra pom cho jar của bên thứ ba như thế này:maven tạo pom tập tin

mvn install:install-file -Dfile=cobra.jar -DgroupId=com.cobra -DartifactId=cobra -Dversion=0.98.4 -Dpackaging=jar -DgeneratePom=true

Theo liên kết bên dưới nó sẽ tạo ra pom.xml thích hợp và cài đặt vật trong repo. http://maven.apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

Trong khi đó, nó trả về một lỗi như vậy:

[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (D:\cobra-0.98.4\lib). Please verify you invoked Maven from the correct directory. -> [Help 1]

Tại sao nó yêu cầu pom.xml trong khi nó sẽ tạo ra pom.xml?

+0

Tôi chỉ chạy dòng này trong cmd trên Windows 7 và nó hoạt động cho Maven 3.0.5. Có lẽ họ đã sửa nó trong phiên bản này. – firen

Trả lời

67

Đây là một câu hỏi cũ, nhưng là một Pita nghiêm trọng đối với tôi trong một vài phút, vì vậy tôi nghĩ rằng tôi muốn chia sẻ:

Tôi chỉ chạy vào vấn đề này và tôi tin rằng vấn đề có thể phụ thuộc vào nền tảng. Lời khuyên thực sự là giải pháp từ câu trả lời của Cyril không hoạt động như mong đợi: mặc dù đặc tả của tôi là -DgroupId=com.xyz-DartifactId=whatever trên dòng lệnh và mục tương ứng trong tệp POM, jar được cài đặt trong repo cục bộ theo com/whatever .

Điều này dẫn tôi thử nghiệm với trích dẫn đối số dòng lệnh, và kết quả chính xác cuối cùng từ định dạng dòng lệnh như thế này (sau khi xóa các tập tin POM):

mvn install:install-file "-Dfile=cobra.jar" "-DgroupId=com.cobra" "-DartifactId=cobra" "-Dversion=0.98.4" "-Dpackaging=jar" "-DgeneratePom=true" 

Một số trích dẫn là không nghi ngờ dư thừa, nhưng tốt hơn an toàn hơn xin lỗi, phải không? Tôi tình cờ đang chạy Vista trên máy tính này, và sẽ không ngạc nhiên nếu vấn đề này đã được cụ thể cho phiên bản hệ điều hành này ... bằng cách này, điều này là với Maven v3.0.4.

+7

Thông báo lỗi rác "Mục tiêu bạn chỉ định yêu cầu dự án thực thi ..." là. –

+5

+1. Điều này làm việc cho tôi khi sử dụng Console. CMD hoạt động như mong đợi mà không trích dẫn. – flesk

+0

Tương tự như những gì flesk đã viết, cho Windows tôi nhận được lỗi trong PowerShell, không phải trong cmd, nhờ flesk –

8

Bạn có chắc chắn rằng bạn đang thực hiện mục tiêu install-file? Tôi đã kiểm tra lệnh của bạn và nó hoạt động cho tôi, nhưng khi tôi đặt một install :install-file trống (có thể bạn có lỗi đánh máy này), mục tiêu install sẽ được sử dụng cần pom.xml.

Cố gắng sử dụng tham số -X để có được thông tin debug hơn:

-X,--debug  Produce execution debug output 

Hệ thống của tôi

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ài đặt Plugin

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' 
+0

Không có lỗi đánh máy nào. Bạn có thể nói phiên bản maven mà bạn sử dụng không? – firen

+0

@firen Xem cập nhật câu trả lời của tôi. – FrVaBe

+0

Tôi có chính xác cùng một phiên bản ... Không có ý tưởng thực sự, có lẽ tôi sẽ gỡ lỗi mã maven và xem những gì đang xảy ra ở đó. – firen

3

Tôi tìm thấy đường vòng. Bạn cần tạo một tệp pom.xml đơn giản như sau:

<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> 

Nó không hoàn hảo nhưng nó có tác dụng với tôi. Nếu bạn tìm thấy cách tốt hơn để làm điều đó, tôi quan tâm.

cấu hình của tôi:

$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

cố chạy nó trên cmd.exe hoặc lệnh cmd excute trước lệnh mvn

+0

Tôi đã có cùng một vấn đề này sẽ sửa chữa. – Sin2

0

chỉ cần đi theo thư mục dự án của bạn, nơi bạn có thể tìm thấy tệp pom.xml của bạn sau đó thực hiện cùng một lệnh! nó hoạt động cho tôi;)

0

Nếu bạn gặp sự cố với phiên bản dòng lệnh của Maven, bạn có thể muốn thử plugin M2E cho nhật thực. Nó thân thiện với người dùng hơn đối với những người không có nhiều kinh nghiệm với Maven.

0

Nó làm việc cho tôi khi tôi đổi Powershell thành Cygwin. Powershell bằng cách nào đó phân tích cú pháp đối số dòng lệnh không chính xác.

Các vấn đề liên quan