即使在擦除了我的settings.xml之后,在尝试使用此快照依赖项时仍然会出现此错误。鉴于依赖性:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<path>/licensing</path>
<tomcatWebXml>${basedir}/src/main/mock/web.xml</tomcatWebXml>
</configuration>
</plugin>
和(在POM中),插件存储库定义:
<pluginRepository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
</releases>
</pluginRepository>
我留下了以下404错误。如果我真的导航到那个仓库,那么它正在寻找的罐子就不存在了,只是过时的(我不熟悉Maven如何最终解析预期的依赖名称的机制)。
想法?
Downloading: http://snapshots.repository.codehaus.org/org/codehaus/mojo/tomcat-maven-plugin/1.0-SNAPSHOT/tomcat-maven-pl ugin-1.0-SNAPSHOT.jar [INFO] Unable to find resource 'org.codehaus.mojo:tomcat-maven-plugin:maven-plugin:1.0-SNAPSHOT' in repository Codehaus Snapshots (http://snapshots.repository.codehaus.org) [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to downl oad the artifact from any repository Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=org.codehaus.mojo -DartifactId=tomcat-maven-plugin -Dversion=1.0-SNAPSHOT -Dpacka ging=maven-plugin -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=org.codehaus.mojo -DartifactId=tomcat-maven-plugin -Dversion=1.0-SNAPSHOT -Dpackagi ng=maven-plugin -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] org.codehaus.mojo:tomcat-maven-plugin:maven-plugin:1.0-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), Codehaus Snapshots (http://snapshots.repository.codehaus.org) org.codehaus.mojo:tomcat-maven-plugin:maven-plugin:1.0-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), Codehaus Snapshots (http://snapshots.repository.codehaus.org) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Wed Jan 06 10:06:49 EST 2010 [INFO] Final Memory: 14M/36M [INFO] ------------------------------------------------------------------------
答案 0 :(得分:11)
我重新检查了,并使用以下pom片段:
<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/maven-v4_0_0.xsd">
...
<pluginRepositories>
<pluginRepository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
</releases>
</pluginRepository>
</pluginRepositories>
...
<build>
<finalName>my-webapp</finalName>
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
...
</plugins>
...
</build>
</project>
该插件的SNAPSHOT已成功下载:
$ mvn clean [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building my-webapp Maven Webapp [INFO] task-segment: [clean] [INFO] ------------------------------------------------------------------------ [INFO] snapshot org.codehaus.mojo:tomcat-maven-plugin:1.0-SNAPSHOT: checking for updates from Codehaus Snapshots [INFO] snapshot org.codehaus.mojo:tomcat-maven-plugin:1.0-SNAPSHOT: checking for updates from maven2-repository.dev.java.net Downloading: http://snapshots.repository.codehaus.org//org/codehaus/mojo/tomcat-maven-plugin/1.0-SNAPSHOT/tomcat-maven-plugin-1.0-20091222.232027-11.pom 5K downloaded (tomcat-maven-plugin-1.0-20091222.232027-11.pom) Downloading: http://snapshots.repository.codehaus.org//org/codehaus/mojo/tomcat-maven-plugin/1.0-SNAPSHOT/tomcat-maven-plugin-1.0-20091222.232027-11.jar 48K downloaded (tomcat-maven-plugin-1.0-20091222.232027-11.jar) [INFO] [clean:clean {execution: default-clean}] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 9 seconds [INFO] Finished at: Wed Jan 06 16:13:28 CET 2010 [INFO] Final Memory: 7M/78M [INFO] ------------------------------------------------------------------------
这很奇怪,因为我看不出任何差异,但事情正如预期的那样运作。换句话说,我无法重现......
在本地存储库中,您是否在tomcat-maven-plugin工件的1.0-SNAPSHOT目录中有maven-metadata*.xml
个文件?它们是否与远程服务器上的匹配?他们是否正确指定了内部版本号和时间戳?
如果它们在本地不正确,则使用-U
运行maven可能会有所帮助。
您也可以检查mvn help:effective-pom
,看看Maven认为updatePolicy
对于该存储库上的快照是什么。
或者只是从本地存储库中删除你的tomcat-maven-plugin工件,然后再试一次。
如果没有任何帮助,请尝试手动安装(从存储库下载插件并使用mvn install:install-file
mojo)或从VCS检出源并在本地构建它。但这些选项只是解决方法,你在某个地方遇到问题(你使用的是什么版本的maven?)。
答案 1 :(得分:6)
我知道这篇文章有点陈旧,但tomcat maven插件已被移动到apache maven存储库。 Codehaus只承载插件的1.0版本。如果你想要2.0快照(所以你可以运行tomcat 7),你需要稍微更改你的pom.xml。请注意,2.0正在开发中。
<repositories>
...
<repository>
<id>people.apache.snapshots</id>
<url>http://repository.apache.org/content/groups/snapshots-group/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshots</name>
<url>http://repository.apache.org/content/groups/snapshots-group/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
您的插件配置如下:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
</plugin>
答案 2 :(得分:1)
不确定,但看起来他们可能正在使用某种形式的"buildnumber" maven插件来包含版本控制版本号。
看看http://snapshots.repository.codehaus.org//org/codehaus/mojo/tomcat-maven-plugin/1.0-SNAPSHOT/maven-metadata.xml你会注意到除了正常的东西之外,还有一个用于buildnumber和timestamp的xml标签。
这可能不太理想,但您可以替换:
<version>1.0-SNAPSHOT</version>
with:
<version>1.0-20091222.232027-11</version>
至少启动并运行最新版本的插件。
答案 3 :(得分:0)
首先请允许我说,不要像其他Eclipse插件那样下载TomCat-Maven-Plugin for Eclipse。
您只需在Eclipse中使用maven工具,将正确的maven插件构建命令插入到maven pom.xml文件中.....
如果有人在理解如何让他们的Maven项目作为maven Build配置运行时遇到困难,那么您可能需要寻找以下几点:
我想上传一张图片但是很好......
在你的Eclipse Web App中,希望你有一个Maven POM.xml文件,如果没有,你需要先设置它。
然后,您可以右键单击它,然后在菜单中找到Maven,然后出现子菜单项,并选择一个名为Add Plugin的选项。
有一个名为“输入groupId,artifactId或sha1等等的字段.... 在那里输入单词Tomcat。
然后会在下面的框中加载搜索结果。
基本上这样做是在pom.xml中加载有关使用Maven构建时要下载哪些插件的详细信息。
之后你需要做Maven构建。
然后,您希望转到“运行配置”并确保您拥有正确的Web应用程序所在位置。
同样在该页面中,在目标类型TomCat:run下 然后申请 终于跑了。
如果一切顺利,您将拥有运行Web应用程序的Tomcat服务器。 然后你可以进入浏览器并输入[http:// localhost:8080 / webappname / defaultpagename]
和walla!