我使用最新的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>
怎么了?
答案 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存储库中(用于安装的确切命令通常随附你一直看到的错误。