在 pom.xml 中指定目标

Posted

技术标签:

【中文标题】在 pom.xml 中指定目标【英文标题】:specifying goal in pom.xml 【发布时间】:2013-11-20 02:27:33 【问题描述】:

我正在使用pom.xml 创建一个新的 maven 项目,如下所示:-

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  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>firstRestlet</groupId>
  <artifactId>restlet1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>restlet1</name>
  <url>http://maven.apache.org</url>
  <repositories>
<repository>
   <id>maven-restlet</id>
   <name>Public online Restlet repository</name>
   <url>http://maven.restlet.org</url>
</repository> 
</repositories>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

我面临的问题是没有生成目标战争文件。 在我运行这个pom.xml 之后,在eclipse 控制台上我发现pom.xml 中缺少目标。

ECLIPSE 控制台消息:

No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR] 

请告诉我如何在pom.xml 中指定目标。

还告诉我如何使用 maven 作为构建工具来创建 RESTLET 项目。

感谢和问候,

【问题讨论】:

请告诉我们您正在运行什么命令以及控制台上的输出是什么。 在运行配置中指定目标为install 【参考方案1】:

您指定的错误消息只是您没有指定 maven 构建的目标。

您可以在 Maven 构建的运行配置中指定任何目标,例如清除、编译、安装、打包。

请按照以下步骤解决。

    右键单击您的项目。 点击“运行方式”并选择“Maven 构建” 编辑配置窗口将打开。写下任何目标,但具体问题在目标文本框中写下“包”。 点击“运行”

【讨论】:

这确实对我有用,但错误消息及其修复似乎如此模糊和不必要 如何在 pom.xml 中添加目标,使其在 Eclipse 的“运行方式”选项中可用。例如:使验证目标可用(Maven 验证)。 好问题。我现在看不到选项但我会检查它并在这里评论它。谢谢 在“配置文件”文本字段中输入什么?【参考方案2】:

我遇到了这个问题,因为我实际上想在 pom.xml 中定义一个默认目标。您可以在构建下定义一个默认目标:

<build>
    <defaultGoal>install</defaultGoal>
...
</build>

更改后,您可以简单地运行 mvn,它的作用与 mvn install 完全相同。

注意:我不赞成将此作为默认方法。我的用例是定义一个配置文件,该配置文件从 Artifactory 下载该项目的早期版本,并希望将该配置文件绑定到给定阶段。为方便起见,我可以运行mvn -Pdownload-jar -Dversion=0.0.9 并且不需要在那里指定目标/阶段。我认为在配置文件中定义defaultGoal 是合理的,该配置文件对特定阶段具有非常特定的功能。

【讨论】:

【参考方案3】:

你应该总是给你的 maven 命令一个参数。通常这是生命周期之一。例如:

mvn package

包将创建罐子、战争、耳朵等。

有关更多阶段及其含义,请参阅:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

【讨论】:

【参考方案4】:

1.右键单击您的项目。2.单击“运行方式”并选择“Maven Build”3强>。编辑配置窗口将打开。在目标4 用户设置中写入任何目标,但具体问题写入“包”:显示您的 maven->directory->conf->settings.xml 例如; C:\maven\conf\settings.xml

【讨论】:

【参考方案5】:
    前往航站楼 做mvn clean install

【讨论】:

优秀的答案。 但是如果我想调试到断点怎么办?【参考方案6】:

添加目标,例如 -

 <build>
        <defaultGoal>install</defaultGoal>
        <!-- Source directory configuration -->
        <sourceDirectory>src</sourceDirectory>
</build>

这将解决问题

【讨论】:

【参考方案7】:

我偶然发现了这个异常,发现我忘记添加一个 Main。 检查您的public static void main(String[] args) 是否正确。

祝你好运!

【讨论】:

【参考方案8】:

运行构建后我面临同样的问题。

错误信息告诉我们指定你的目标

所以我指定了目标 Ex:-test。

现在一切正常

【讨论】:

【参考方案9】:

需要在全局设置下设置maven的路径 喜欢 MAVEN_HOME

/user/share/maven

并确保工作台具有读、写和删除权限 “777”

【讨论】:

【参考方案10】:

我在尝试从命令行运行 spring boot 时遇到了这个问题...

mvn spring-boot:run

我不小心把命令打错了...

mvn spring-boot run

所以它正在寻找命令...运行、构建等...

【讨论】:

【参考方案11】:

我遇到过此错误消息,解决方案非常简单。它只是通过在我的 IntelijIdea 配置中指定一个工作目录并将一个目标指定为与“命令行参数”相对的参数来修复的。

【讨论】:

以上是关于在 pom.xml 中指定目标的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pom.xml 文件中指定 Java 编译器版本?

如何在 pom.xml 文件中指定 Java 编译器版本?

如何在 pom.xml 文件中指定 Java 编译器版本?

如何让 readyapi(以前称为 soapui)尊重我在 pom.xml 中指定的值?

是否可以不在父pom中指定pluginManagement?

Maven---pom.xml详解