0

我用最新的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>

怎么了?

4

3 回答 3

2

我最终使用了这个:

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5.0-2</version>
    <type>jar</type>
    <scope>provided</scope>
</dependency>
于 2010-01-19T14:20:25.733 回答
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 下载,没有问题:

2010 年 1 月 19 日下午 3:09:48 CET:下载 java-net-m1-repository:javaee/poms/javaee-api-5.pom
1/19/10 3:09:48 PM CET:下载 [java-net-m1-repository] ​​-> http://download.java.net/maven/1/javaee/poms/javaee-api-5.pom
2010 年 1 月 19 日下午 3:09:49 CET:下载 java-net-m1-repository:javaee/jars/javaee-api-5.jar
1/19/10 3:09:52 PM CET:下载 [java-net-m1-repository] ​​-> http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar

所以我实际上不知道到底发生了什么。

为了调试它,我首先切换到命令行。在您的情况下,我将首先检查从中下载工件的 URL(这应该打印在控制台中,使用该-X选项不是必需的)并尝试使用类似 wget 的东西来模拟此下载。

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

mvn help:effective-pom

如果没有更多细节,很难为您指出一个特殊的方向,但我会看看它(这可能是代理问题吗?)。

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

正如我所说,这应该可以工作。但是没有办法重现和/或更多信息,调试这个问题感觉就像在黑暗中行走:)

于 2010-01-19T14:23:26.913 回答
-1

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

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

于 2010-01-19T12:21:15.247 回答