mvn是一个强大的项目管理工具,通过该工具可以实现java项目管理的自动化。
除掉mvn在项目管理中的基本功能以外,这里主要是讲一下最容易出错的web项目的自动部署和发布的问题。
在通过mvn来管理web项目的时候,可以实现自动的将web项目部署到web服务器上。
首先,通过命令行来安装web服务器,在命令行:mvn tomcat:start , mvn会自动的下载tomcat插件然后运行,
但是, 这个地方经常会报一个错误,
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-tomcat-plugin' does not exist
or no valid version could be found
提示说maven-tomcat-plugin' 插件不存在,仔细查看一下pom文件,发现里面配置了 :
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
</plugin>
,
那为什么还报错。
仔细观察,发现mvn并没有采用pom文件里面的配置来下载tomcat-maven-plugin,而是自以为是的去下载maven-tomcat-plugin' ,关于这个问题很多帖子上都反映过,如下:
Hi,
I'm trying to use tomcat-maven-plugin from
http://mojo.codehaus.org/tomcat-maven-plugin/
But when I type mvn tomcat:deploy, i get
[INFO]
----------------------------------------------------------------------------
[INFO] Building Design Council
[INFO] task-segment: [tomcat:deploy]
[INFO]
----------------------------------------------------------------------------
[INFO] Searching repository for plugin with prefix: 'tomcat'.
[ERROR] project-execute : myapp:myapp:war:0.1.0-SNAPSHOT (
task-segment: [tomcat:deploy] )
Diagnosis: The plugin 'org.apache.maven.plugins:maven-tomcat-plugin'
does not exist or no valid version could be found
FATAL ERROR: Error executing Maven for a project
org.apache.maven.lifecycle.LifecycleExecutionExcep tion: The plugin
'*org.apache.maven.plugins:maven-tomcat-plugin*' does not exist or no
valid version could be found
But I don't even have 'maven-tomcat-plugin' configured in my pom.xml!
I've tried removing whole repository, but the problem persists. I'm just
wondering if there is a way to make maven use a specific plugin for the
shortname tomcat?
这个老外也是这样。
后来,找到一个帖子,
hey, I resolver the conflict by calling:
mvn org.codehaus.mojo:tomcat-maven-plugin:deploy
'Invalid task 'kasza': you must specify a valid lifecycle phase, or a
goal in the format plugin:goal or
*pluginGroupIdluginArtifactIdluginVersion:goal *'
知道了,可以通过指定完全限定名称来解决这个问题。
所以 只要将上面命令中的 tomcat 替换成 org.codehaus.mojo:tomcat-maven-plugin 就可以解决问题了。
这个是执行结果
;
C:/c/myartiid>mvn org.codehaus.mojo:tomcat-maven-plugin:start
[INFO] Scanning for projects...
[INFO] artifact org.codehaus.mojo:tomcat-maven-plugin: checking for updates from
central
Downloading: http://repo1.maven.org/maven2/org/codehaus/mojo/tomcat-maven-plugin
/1.0/tomcat-maven-plugin-1.0.pom
Downloading: http://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/24/mojo
-parent-24.pom
Downloading: http://repo1.maven.org/maven2/org/codehaus/mojo/tomcat-maven-plugin
/1.0/tomcat-maven-plugin-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] Building myartiid
[INFO] task-segment: [org.codehaus.mojo:tomcat-maven-plugin:start]
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/commons-codec/commons-codec/1.3/commo
ns-codec-1.3.pom
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-classworld
s/2.2.2/plexus-classworlds-2.2.2.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/catalina/6.0.26/cat
alina-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/servlet-api/6.0.26/
servlet-api-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/juli/6.0.26/juli-6.
0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/annotations-api/6.0
.26/annotations-api-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/catalina-ha/6.0.26/
catalina-ha-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/coyote/6.0.26/coyot
e-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/tribes/6.0.26/tribe
s-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/el-api/6.0.26/el-ap
i-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper/6.0.26/jaspe
r-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jsp-api/6.0.26/jsp-
api-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper-jdt/6.0.26/j
asper-jdt-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper-el/6.0.26/ja
sper-el-6.0.26.pom
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/dbcp/6.0.26/dbcp-6.
0.26.pom
Downloading: http://repo1.maven.org/maven2/commons-codec/commons-codec/1.3/commo
ns-codec-1.3.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/catalina/6.0.26/cat
alina-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-classworld
s/2.2.2/plexus-classworlds-2.2.2.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/servlet-api/6.0.26/
servlet-api-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/juli/6.0.26/juli-6.
0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/annotations-api/6.0
.26/annotations-api-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/catalina-ha/6.0.26/
catalina-ha-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/coyote/6.0.26/coyot
e-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/tribes/6.0.26/tribe
s-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/el-api/6.0.26/el-ap
i-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper/6.0.26/jaspe
r-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jsp-api/6.0.26/jsp-
api-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper-jdt/6.0.26/j
asper-jdt-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/jasper-el/6.0.26/ja
sper-el-6.0.26.jar
Downloading: http://repo1.maven.org/maven2/org/apache/tomcat/dbcp/6.0.26/dbcp-6.
0.26.jar
[INFO] [tomcat:start {execution: default-cli}]
[INFO] Skipping non-war project
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 minutes 20 seconds
[INFO] Finished at: Wed Sep 01 20:04:02 CST 2010
[INFO] Final Memory: 5M/10M
[INFO] ------------------------------------------------------------------------