在pom.xml中指定目标

时间:2013-11-08 06:32:19

标签: java xml eclipse maven

我正在使用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>

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

ECLIPSE CONSOLE MESSAGE:

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项目。

谢谢&amp;的问候,

11 个答案:

答案 0 :(得分:62)

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

您可以在运行配置中为maven构建指定任何目标,例如clear,compile,install,package。

请按照以下步骤解决。

  1. 右键点击您的项目。
  2. 点击“运行方式”,然后选择“Maven Build”
  3. 编辑配置窗口将打开。写任何目标,但你的问题特定在目标文本框中写'包'。
  4. 点击“运行”

答案 1 :(得分:15)

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

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

完成更改后,您只需运行与mvn完全相同的mvn install

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

答案 2 :(得分:13)

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

mvn package

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

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

答案 3 :(得分:8)

1 。右键点击您的项目。
2 .click&#39;以&#39;运行并选择Maven Build&#39;
<强> 3 即可。编辑配置窗口将打开。写任何目标,但你的问题具体写'&#39;包&#39;在目标中 4 用户设置:显示您的maven-&gt;目录 - &gt; conf-&gt; settings.xml 例如; C:\行家\ CONF \ settings.xml的

答案 4 :(得分:3)

  1. 转到终端
  2. mvn clean install

答案 5 :(得分:3)

添加目标,例如-

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

这将解决问题

答案 6 :(得分:0)

如果使用的是Eclipse,请确保BUILT PATH下的JRE库指向JDK文件夹而不是jre,如果使用的是Java 7,则需要创建setting.xml,并设置代理以允许.m2文件夹下的请求;但是,如果您使用的是Java 8 jdk,应该会发现。

答案 7 :(得分:0)

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

错误消息告诉我们指定您的目标

Jenkins Issue related to goal for build

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

现在运行正常

答案 8 :(得分:0)

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

祝你好运!

答案 9 :(得分:0)

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

/ user / share / maven

并确保工作台具有读取,写入和删除的权限 “ 777”

答案 10 :(得分:0)

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

mvn spring-boot:run

我不小心将命令键入为...

mvn spring-boot run

因此它正在寻找命令...运行,构建等...