maven for javaee-api

时间:2010-01-19 12:14:47

标签: eclipse maven-2 java-ee m2eclipse

我使用最新的m2eclipse生成一个标准的ejb项目,但后来我收到了一个错误:

Missing artifact javaee:javaee-api:jar:5:provided

pom.xml如下:

<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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>IMS-LEXXWAR</groupId>
    <artifactId>ims.base.ejb</artifactId>
    <packaging>ejb</packaging>
    <version>1.0.0</version>
    <name>ims.base.ejb JEE5 EJB</name>
    <url>http://maven.apache.org</url>
    <dependencies>

        <dependency>
            <groupId>javaee</groupId>
            <artifactId>javaee-api</artifactId>
            <version>5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <repositories>
        <repository>
            <id>java.net1</id>
            <name>Java.Net Maven1 Repository, hosts the javaee-api dependency</name>
            <url>http://download.java.net/maven/1</url>
            <layout>legacy</layout>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <ejbVersion>3.0</ejbVersion>
                </configuration>
            </plugin>

        </plugins>
        <finalName>ims.base.ejb</finalName>
    </build>
</project>

怎么了?

3 个答案:

答案 0 :(得分:2)

我最终使用了这个:

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5.0-2</version>
    <type>jar</type>
    <scope>provided</scope>
</dependency>

答案 1 :(得分:2)

这是一个奇怪的问题,因为我的机器上的工作正常(c)。使用以下存储库定义:

  <repositories>
    <repository>
      <id>java-net-m1-repository</id>
      <name>Java.net Maven 1.x Repository</name>
      <url>http://download.java.net/maven/1</url>
      <layout>legacy</layout>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

这种依赖:

  <dependencies>
    <dependency>
      <groupId>javaee</groupId>
      <artifactId>javaee-api</artifactId>
      <version>5</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

m2eclipse / maven下载的工件没有问题:

1/19/10 3:09:48 PM CET: Downloading java-net-m1-repository : javaee/poms/javaee-api-5.pom
1/19/10 3:09:48 PM CET: Downloaded [java-net-m1-repository] -> http://download.java.net/maven/1/javaee/poms/javaee-api-5.pom
1/19/10 3:09:49 PM CET: Downloading java-net-m1-repository : javaee/jars/javaee-api-5.jar
1/19/10 3:09:52 PM CET: Downloaded [java-net-m1-repository] -> http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar

所以我实际上并不知道究竟发生了什么。

要调试它,我首先切换到命令行。在您的情况下,我首先检查下载工件的URL(在控制台中应该打印,不需要使用-X选项)和尝试用wget之类的东西来模仿这个下载。

如果您没有找到任何明显的内容,请使用以下命令检查您可以获得的有效POM:

mvn help:effective-pom

如果没有更多详细信息,很难指出你处于一个特殊的方向,但我会看一下(这可能是代理问题吗?)。

另一个想法是尝试在另一台机器/配置上重现此问题,如果有效,请检查差异。

正如我所说,这应该有效。但是如果没有重现和/或更多信息的方法,调试这个问题就像在黑暗中行走一样:)

答案 2 :(得分:-1)

您没有在本地存储库中安装工件,并且maven无法在它知道的存储库中找到它。

javaee.javaee-api的名称看起来很正式,但mvnrepository.com对此一无所知。如果它是你本地的jar(为什么它会被称为javaee?),你需要使用mvn install命令将它安装在本地mvn存储库中(用于安装的确切命令通常随附你一直看到的错误。