我正在使用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;的问候,
答案 0 :(得分:62)
您指定的错误消息只是您没有为maven build指定目标。
您可以在运行配置中为maven构建指定任何目标,例如clear,compile,install,package。
请按照以下步骤解决。
答案 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)
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)
运行构建后,我面临着同样的问题。
错误消息告诉我们指定您的目标
所以我指定目标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
因此它正在寻找命令...运行,构建等...