Maven无法下载tomcat-maven-plugin快照

时间:2010-01-06 14:34:53

标签: java maven-2

即使在擦除了我的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] ------------------------------------------------------------------------

4 个答案:

答案 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!