Lỗi “Mục tiêu bạn đã chỉ định yêu cầu một dự án thực hiện nhưng không có POM trong thư mục này” sau khi thực hiện lệnh maven


113

Tôi có một pom.xmltrong C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xmlvà tôi thực hiện:

mvn install:install-file -DgroupId=es.mityc.jumbo.adsi -DartifactId=xmlsec-1.4.2-ADSI -Dversion=1.0 -Dpackaging=jar -Dfile=C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\core\xmlsec-1.4.2-ADSI-1.0.jar

tuy nhiên nó trả về lỗi bên dưới:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.310s
[INFO] Finished at: Thu May 02 16:48:29 COT 2013
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM
 in this directory (C:\Users\AArmijos). Please verify you invoked Maven from the
 correct directory. -> [Help 1]

Ai đó có thể giải thích tại sao nó không thành công?


Bạn đã kiểm tra ở đây? maven.apache.org/plugins/maven-install-plugin/usage.html mẫu của bạn dường như không hợp lệ. Tôi thấy rằng tệp .jar có đối số đầu tiên.
Deividi Cavarzan

vâng, lệnh này được chạy chính xác trên máy tính khác nhưng tôi không thể chạy trên máy tính của mình, tôi đã cài đặt phiên bản jdk và maven mới nhất
Adrian

Ok bây giờ tôi thấy lỗi tốt hơn. Bạn có một tệp pom.xml trong thư mục mà bạn gọi là mvn install-install-file này không? Nếu bạn có, bạn có thể cập nhật câu hỏi của bạn?
Deividi Cavarzan

Có, tôi có một pom.xml
Adrian

Bạn có thể đăng câu hỏi của bạn được không?
Deividi Cavarzan

Câu trả lời:


192

Liên kết này đã giúp: https://stackoverflow.com/a/11199865/1307104

Tôi chỉnh sửa lệnh của mình bằng cách thêm dấu ngoặc kép cho mọi tham số như sau:

mvn install:install-file "-DgroupId=org.mozilla" "-DartifactId=jss" "-Dversion=4.2.5" "-Dpackaging=jar" "-Dfile=C:\Users\AArmijos\workspace\componentes-1.0.4\deps\jss-4.2.5.jar"

Nó đã hoạt động.


1
Kể từ khi nào tôi cần báo giá? Tôi đang rất bối rối ngay bây giờ, và nhẹ nhõm khi cuối cùng cũng tìm được một câu trả lời cho một thông báo lỗi rác như vậy ...
BAERUS

Tôi đã gặp phải vấn đề tương tự khi thực hiện deploy:deploy-file, nhưng vấn đề của tôi là tôi vừa bỏ lỡ dấu gạch ngang (" -") trước một trong các tùy chọn.
RAM237

Cảm ơn bạn. Tôi cảm thấy giống như năm 1999 và chúng ta đang ở năm 2018: /
Nordes

Nếu bạn đang sử dụng powershell, bạn có thể thấy trực quan cách PowerShell đang tách các đối số với màu trên dòng lệnh hoặc bằng cách đặt "echo" trước lệnh. Giống như "echo mvn install: install-file ...".
turiyag

Trong phiên bản maven trước đó, tôi chưa bao giờ sử dụng dấu ngoặc kép. Nhưng, bây giờ nó không hoạt động nếu không có nó. điều này đã giải quyết vấn đề của tôi.
Pankaj

39

Đối với bất kỳ ai đang gặp sự cố này trên Windows và không có cách nào ở trên hoạt động, hãy thử chạy điều này từ cmd.exe. Việc thực thi các lệnh này qua PowerShell khiến quá trình cài đặt không thành công mỗi lần.


1
Cùng một vấn đề, Powershell và CMD luận xử lý công việc khác nhau và dường như khó hiểu mvn
eageranalyst

Đã làm theo hướng dẫn Bắt đầu của Maven và cố gắng thực thi "mvn -B archetype: create ....." trên Windows PowerShell và gặp lỗi tương tự. Chuyển sang ứng dụng khách dòng lệnh khác (mintty git bash) đã giải quyết được vấn đề.
AbstractVoid

27

Trên các cửa sổ theo như tôi liên quan, bạn phải đặt tất cả các tham số bằng dấu ngoặc kép.

Vì vậy, nếu bạn muốn tạo một mẫu ứng dụng web maven, bạn sẽ làm như sau:

Điều kiện tiên quyết:

  1. Đảm bảo rằng bạn đã cài đặt maven và có nó trong biến môi trường PATH của bạn.

Làm thế nào để:

  1. Mở windows powershell
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. mvn archetype: tạo "-DgroupId = com.javan.dev" "-DartifactId = MyWebApp" "-DarchetypeArtifactId = maven-archetype-webapp" "-DinteractiveMode = false"

nhập mô tả hình ảnh ở đây

Lưu ý: Điều này chỉ được thử nghiệm trên windows 10 powershell


Đã xác minh trên Mac OS X. Ngoài ra, đối với dprowizard, java-simplebạn có thể sử dụng lệnh sau: mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple"với chế độ tương tác hoặc với các tham số bổ sung.
Andrey Lebedenko

9

Thêm một câu trả lời nữa cho người dùng Windows. Nếu không có điều này giải quyết được vấn đề.

Không thêm spacetrước hoặc sau=

-DgroupId= com.company.module //Wrong , Watch the space after the equal to 
-DgroupId=com.company.module //Right 

Tốt hơn hết bạn nên đặt mọi thứ bên trong dấu ngoặc kép, như "-DgroupId = com .." Điều này sẽ cung cấp cho bạn lỗi chính xác hơn là một số lỗi ngẫu nhiên.

Kỳ lạ là, maven thậm chí không quan tâm đến việc đề cập đến điều này trong tài liệu.


1
giải pháp của bạn làm việc, tôi đặt tất cả các phần -D trong "" ... nó thực sự tuyệt vời mà sản phẩm rất kém thiết kế và ốm mã như Maven đã quản lý để trở nên phổ biến ...
Pierluigi Vernetto


1

Thay đổi mvn cleanđể mvn clean --file *.pomkhắc phục sự cố này cho tôi.


1

Trên Windows, tôi gặp lỗi này khi chạy dưới dấu nhắc lệnh không phải quản trị viên. Khi tôi chạy điều này với tư cách quản trị viên, lỗi đã biến mất.


1

1. tạo một thư mục lib trong tệp dự án của bạn,

2. quản lý tệp jarFiles của bạn vào thư mục lib

3. nhấp chuột phải vào jarFile của bạn, đi đến đường dẫn xây dựng> Thêm vào đường dẫn xây dựng (bây giờ tệp jar của bạn là một phần của thư viện được cấp lại của bạn)

4. mở dấu nhắc lệnh và điều hướng đến thư mục dự án của bạn và viết

mvn install: install-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>" "-Dpackaging=jar" 

6.Xây dựng lại chỉ mục kho lưu trữ cục bộ của bạn bằng cách mở trong eclipse- đi tới cửa sổ> hiển thị chế độ xem> khác> maven> Kho lưu trữ maven. Nhấp chuột phải vào Repositores cục bộ và nhấn "RebuildIndex"

5. mở tệp pom.xml của bạn và thêm phụ thuộc của bạn

    <dependency>
        <groupId><yourGroupID></groupId>
        <artifactId><yourArtifactId></artifactId>
        <version><yourVersion></version>
    </dependency>

và chạy

mvn clean
mvn compile 
mvn test 

Tôi đã tự hỏi làm thế nào một lệnh maven đơn giản sẽ không thành công ... Tôi đã đưa ra giải pháp của bạn và thì đấy! Nó đã làm việc! Không ai được viết params java trong", được những gì tôi đã mất tích Thank you very much :).
russellhoff

0

Tôi đột nhiên gặp lỗi này trong Netbeans (nhưng nó hoạt động từ dòng lệnh) và hóa ra một số chương trình khác đã thay đổi thư mục mặc định của dấu nhắc lệnh. Và vì Netbeans chạy "cmd / c" khi gọi maven, nó bắt đầu trong một thư mục không chính xác.

Kiểm tra trong Regedit giá trị cho

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun  

Nếu nó đã được thiết lập, bạn có thể nên gỡ bỏ nó để khắc phục sự cố. (1)

(Tôi đã hạ cánh ở đây khi cố gắng giải quyết vấn đề này, có thể không áp dụng được 100% cho câu hỏi hiện tại - nhưng có thể giúp ích cho những người khác)

(1) Thay đổi thư mục khởi động mặc định cho dấu nhắc lệnh trong Windows 7


0
  • Việc thực thi lệnh maven yêu cầu tệp pom.xml chứa thông tin về dự án và chi tiết cấu hình được Maven sử dụng để xây dựng dự án. Nó chứa các giá trị mặc định cho hầu hết các dự án.

  • Đảm bảo rằng porject phải chứa pom.xml ở cấp cơ sở.


0

Thêm tệp Jenkins vào nơi có tệp pom.xml. Cung cấp đường dẫn thư mục trên dir ('project-dir'),

Ví dụ:

node {

    withMaven(maven:'maven') {

        stage('Checkout') {
            git url: 'http://xxxxxxx/gitlab/root/XXX.git', credentialsId: 'xxxxx', branch: 'xxx'
        }

        stage('Build') {

            **dir('project-dir') {**
                sh 'mvn clean install'

                def pom = readMavenPom file:'pom.xml'

                print pom.version
                env.version = pom.version
            }
        }
    }
}

0

Kiểm tra tên của tệp, tức là tệp pom.xml được viết đúng chính tả với phần mở rộng tệp thích hợp .xml .

Ví dụ cho lỗi này là

pom.ml pm.xl


0

Có thể có vấn đề với cấu hình đường dẫn Maven, nếu bạn sử dụng Hệ thống toán tử giống unix.

bước 1: tạo tệp mới trong đường dẫn ~/.bash_profile

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH

bước 2: chạy shell source ~/.bash_profile HOẶC sửa đổi tệp cấu hình zsh (thêm dòng mới source ~/.bash_profile:)


-1

"Mục tiêu bạn đã chỉ định yêu cầu một dự án phải thực hiện": Câu trả lời nằm trong câu hỏi của bạn. Tôi phải đối mặt với cùng một vấn đề. Chạy "lệnh mvn" trong thư mục dự án , Đồng thời đảm bảo rằng dự án được định cấu hình maven và do đó có chứa tệp "POM.xml" và bạn nên thực hiện!


2
Lệnh này để cài đặt jar cục bộ của bên thứ 3. Chúng tôi không có mã nguồn dự án với chúng tôi
madhairsilence

-2

Vui lòng chạy nó từ thư mục chứa POM.XML.


9
Bị phản đối vì install:install-filemục tiêu không cần (không thể?) Chạy trên một dự án. Nó được sử dụng để cài đặt thủ công một tạo tác vào kho lưu trữ.
Zoltán

Tôi đang cố gắng tải lên một tệp zip không có Pom xml. phản đối
kazanaki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.