2010-01-19 6 views
0

J'utilise la dernière m2eclipse pour générer un projet standard ejb, mais je me suis une erreur:Maven pour JavaEE-api

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

Le pom.xml est comme suit:

<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> 

Quelle est faux?

Répondre

2

Je fini par utiliser ceci:

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

Je l'ai utilisé aussi, jusqu'à ce que je rencontre des problèmes d'envoi d'emails HTML avec JavaMail (mail manquant sujet, ne pas afficher HTML etc). Cette dépendance semble malheureusement inclure quelques implémentations cassées de l'activation et du mail lib. – stian

-1

L'artefact n'est pas installé dans le référentiel local et maven ne le trouve pas dans les dépôts qu'il connaît.

Le nom pour javaee.javaee-api semble assez formel mais mvnrepository.com ne sait rien à ce sujet. Si c'est un jar que vous avez localement (pourquoi serait-il appelé javaee cependant?), Vous devez l'installer dans le référentiel mvn local en utilisant la commande mvn install (la commande exacte utilisée pour l'installation est généralement fournie avec cette erreur). Je voyais).

+0

Mais si je vais utiliser le navigateur pour ici: http://download.java.net/maven/1 L'artefact est en effet là. – nanda

+0

Ensuite, téléchargez le fichier jar et installez-le localement. – laura

2

Ceci est un problème bizarre que les choses fonctionnent bien sur ma machine (c). Avec la définition du référentiel suivant:

<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> 

Et cette dépendance:

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

L'artefact est téléchargé par m2eclipse/Maven sans problème:

 
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 

donc je ne sais pas vraiment qu'est-ce qui se passe exactement?

Pour le déboguer, je passerais d'abord à la ligne de commande. Dans votre cas, je commencerais par vérifier l'URL à partir de laquelle l'artefact est téléchargé (ce devrait être imprimé dans la console, en utilisant l'option -X ne devrait pas être nécessaire) et essayer d'imiter ce téléchargement avec quelque chose comme wget .

Si vous ne trouvez pas quelque chose d'évident, puis vérifiez la POM efficace que vous pouvez obtenir en utilisant la commande suivante:

mvn help:effective-pom 

Il est difficile de vous orienter dans une direction particulière, sans plus de détails, mais je prendrais un coup d'oeil (pourrait-il être un problème de proxy?).

Une autre idée serait d'essayer de reproduire ce problème sur une autre machine/configuration et, si cela fonctionne, vérifiez les différences.

Comme je l'ai dit, cela devrait simplement fonctionner. Mais sans un moyen de reproduire et/ou plus d'informations, le débogage de ce problème ressemble à marcher dans l'obscurité :)

+0

Non, ça ne marche toujours pas. Je ne sais pas quoi d'autre à fournir. La seule erreur que je peux voir est: 19.01.10 15:39:02 MEZ: [WARN] Métadonnées d'artefact manquantes pour javaee: javaee-api: pot: 5 19.01.10 15:39:04 MEZ: Maven Constructeur: AUTO_BUILD 19.01.10 15:39:35 MEZ: Artefact manquant javaee: javaee-api: pot 5: fourni – nanda

+0

C'est bizarre, très bizarre. Êtes-vous derrière un proxy? –