执行maven命令后出现错误“您指定的目标需要一个项目来执行,但此目录中没有POM”


113

pom.xml进入C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xml并执行:

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

但是它返回以下错误:

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

有人可以解释为什么失败吗?


你在这里检查了吗?maven.apache.org/plugins/maven-install-plugin/usage.html您的模板似乎无效。我看到第一个参数是.jar文件。
Deividi Cavarzan

是的,此命令已在另一台PC上正确运行,但无法在我的PC上运行,我安装了最新版本的jdk和maven
Adrian

好的,现在我可以更好地看到该错误了。在此文件夹中是否有一个名为mvn install-install-file的pom.xml?如果有,可以更新您的问题吗?
Deividi Cavarzan

是的,我有一个pom.xml
Adrian

你可以在问题中留言吗?
Deividi Cavarzan

Answers:


191

该链接帮助:https : //stackoverflow.com/a/11199865/1307104

我通过为每个参数添加引号来编辑命令,如下所示:

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"

好了


1
从什么时候起我需要报价?我现在很困惑,松了一口气,终于找到了解决此类垃圾错误消息的答案……
BAERUS

我在执行操作时遇到了类似的问题deploy:deploy-file,但是我的问题是我只是错过了-其中一个选项前的破折号(“ ”)。
RAM237 '18

谢谢。我感觉就像在1999年,而我们在2018年:/
Nordes

如果您使用的是Powershell,则可以直观地看到PowerShell如何在命令行上用颜色分隔参数,或者通过在命令前放置“ echo”。就像“回声mvn install:install-file ...”。
turiyag

在较早版本的maven中,我从未使用过提供双引号。但是,现在没有它是行不通的。这解决了我的问题。
Pankaj

39

对于任何在Windows上遇到此问题且上述方法均无效的用户,请尝试从cmd.exe运行它。通过PowerShell执行这些命令每次都会导致安装失败。


1
相同的问题,Powershell和CMD参数处理的工作方式不同,并且似乎使MVN感到困惑
eageranalyst

遵循了Maven的《入门指南》,并尝试在Windows PowerShell上执行“ mvn -B archetype:generate .....”,并且得到了类似的错误。切换到其他命令行客户端(mintty git bash)解决了该问题。
AbstractVoid

27

就我而言,在Windows上,必须将所有参数都用引号引起来。

因此,如果要创建Maven WebApp原型,请执行以下操作:

先决条件:

  1. 确保已安装Maven,并将其放在PATH环境变量中。

如何:

  1. 打开Windows Powershell
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. mvn原型:生成“ -DgroupId = com.javan.dev”“ -DartifactId = MyWebApp”“ -DarchetypeArtifactId = maven-archetype-webapp”“ -DinteractiveMode = false”

在此处输入图片说明

注意:仅在Windows 10 Powershell上对此进行了测试


在Mac OS X上进行了验证。此外,对于dprowizard,java-simple您可以使用以下命令:mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple"具有交互模式或附加参数。
安德烈·列别登科

9

为Windows用户添加一个答案。如果这些都不能解决问题。

不要在space之前或之后添加=

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

最好将所有内容放在双引号中,例如“ -DgroupId = com ..”。这将为您提供确切的错误,而不是一些随机的错误。

奇怪的是,Maven甚至不在乎在文档中提及这一点。


1
您的解决方案有效,我将所有-D部分都放在了“”中...如此令人惊奇的是,如此糟糕的产品设计和错误编码,就像Maven如此流行一样……
Pierluigi Vernetto



1

在Windows上,在非管理员命令提示符下运行时出现此错误。当我以管理员身份运行该错误时,该错误消失了。


1

1.在项目文件中创建一个lib文件夹,

2.将您的jarFiles复制到lib文件夹

3.右键单击您的jarFile转到构建路径>添加到构建路径(现在您的jar文件是您的受优先权的库的一部分)

4.打开命令提示符并导航到您的项目目录并编写

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

6.通过在Eclipse中打开来重建本地存储库索引-转到窗口>显示视图>其他> Maven> Maven存储库。右键单击本地存储库,然后单击“ RebuildIndex”

5.打开您的pom.xml文件并添加依赖项

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

并运行

mvn clean
mvn compile 
mvn test 

我一直想知道一个简单的maven命令将如何失败...我想出了您的解决方案,瞧!有效!没有人在“之内编写Java参数,这正是我所缺少的。非常感谢:)
russellhoff

0

我在Netbeans中突然收到此错误(但它在命令行中起作用),结果发现其他程序已更改了命令提示符的默认目录。并且由于Netbeans在调用Maven时运行“ cmd / c”,因此它在错误的目录中启动。

在Regedit中签出的值

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun  

如果已设置,则可能应将其删除以解决问题。(1)

(我尝试解决此问题时落在这里,可能不适用于当前问题,但可能对其他问题有100%的帮助)

(1) 在Windows 7中更改命令提示符的默认启动目录



0

在存在pom.xml文件的地方添加Jenkinsfile。在dir('project-dir')上提供目录路径,

例如:

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

检查文件名,即pom.xml文件的拼写正确,文件扩展名为.xml

此错误的示例是

pom.ml pm.xl


0

如果使用了类unix的Operator System,则Maven路径配置可能存在问题。

步骤1:在路径中创建新文件 ~/.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

第2步:shell中运行source ~/.bash_profile 或修改的zsh配置文件(添加新行:source ~/.bash_profile


-1

“您指定的目标需要一个项目才能执行”:答案在您的问题中。我遇到了同样的问题。在项目文件夹中运行“ mvn命令”,并确保其是由maven配置的项目,因此包含“ POM.xml”文件,您应该一切顺利!


2
该命令用于安装本地第3方jar。我们没有项目源代码
madhairsilence

-2

请从POM.XML所在的目录中运行它。


9
被否决的原因是install:install-file不需要(不需要)在项目上运行目标。它用于将工件手动安装到存储库中。
佐尔坦

我正在尝试上传没有Pom xml的zip文件。downvoted
kazanaki
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.