代码之家  ›  专栏  ›  技术社区  ›  nanda

JavaEEAPI的Maven

  •  0
  • nanda  · 技术社区  · 15 年前

    我使用最新的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 回复  |  直到 15 年前
        1
  •  2
  •   nanda    15 年前

    我最后用了这个:

    <dependency>
        <groupId>org.apache.openejb</groupId>
        <artifactId>javaee-api</artifactId>
        <version>5.0-2</version>
        <type>jar</type>
        <scope>provided</scope>
    </dependency>
    
        2
  •  2
  •   Pascal Thivent    15 年前

    这是一个奇怪的问题,因为我的机器工作正常(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
    

    在没有更多细节的情况下,很难给你指明一个特别的方向,但我会看一看(这可能是代理问题吗?).

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

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

        3
  •  -1
  •   laura    15 年前

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

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