【问题标题】:Maven for javaee-api用于 javaee-api 的 Maven
【发布时间】:2011-01-06 18:59:05
【问题描述】:

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

怎么了?

【问题讨论】:

    标签: eclipse maven-2 jakarta-ee m2eclipse


    【解决方案1】:

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

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

    【讨论】:

    • 但是如果我用浏览器去这里:download.java.net/maven/1 神器确实在那里。
    • 然后下载jar并安装到本地。
    【解决方案2】:

    我最终使用了这个:

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

    【讨论】:

    • 我也使用过这个,直到我在使用 JavaMail 发送 HTML 电子邮件时遇到问题(邮件缺少主题,不显示 HTML 等)。不幸的是,这种依赖似乎包括激活和邮件库的一些损坏的实现。
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 不,它仍然无法正常工作。我不知道还能提供什么。我能看到的唯一错误是:19.01.10 15:39:02 MEZ:[WARN] 缺少 javaee:javaee-api:jar:5 19.01.10 15:39:04 MEZ 的工件元数据:Maven Builder:AUTO_BUILD 19.01。 10 15:39:35 MEZ:缺少工件 javaee:javaee-api:jar:5:provided
    • 这很奇怪,很奇怪。您是否支持代理?
    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2013-05-23
    • 2018-08-19
    • 2018-09-10
    相关资源
    最近更新 更多