2015-04-30 21 views
8

ottengo gli errori come il seguente in Eclipse utilizzando Maven:biblioteca Eclipse/Maven Progetto è mancante richiesta/artefatto mancante

Missing artifact org.eclipse:swt:jar:3.7. 
Project 'davmail' is missing required library: '/home/buzz-dee/.m2/repository/org/eclipse/swt/3.7.0/swt-3.7.0.jar' 

Maven missing libraries error

maggior parte delle biblioteche si trovano, come potete vedere nell'immagine sopra, ma alcuni no. Ma i file sono al posto giusto .:

ls ~/.m2/repository/org/eclipse/swt/3.7.0/ 
swt-3.7.0.jar.lastUpdated swt-3.7.0.pom.lastUpdated 

Si tratta di un parziale pom.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<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>davmail</groupId> 
    <artifactId>davmail</artifactId> 
    <packaging>jar</packaging> 
    <version>4.6.1</version> 
    <name>DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway</name> 
    <organization> 
     <name>Mickaël Guessant</name> 
    </organization> 
    <repositories> 
     <repository> 
      <id>central</id> 
      <name>Maven Repository Switchboard</name> 
      <layout>default</layout> 
      <url>http://repo1.maven.org/maven2</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>xwiki</id> 
      <layout>default</layout> 
      <url>http://maven.xwiki.org/externals</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.jackrabbit</groupId> 
      <artifactId>jackrabbit-webdav</artifactId> 
      <version>2.4.3</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.jackrabbit</groupId> 
        <artifactId>jackrabbit-jcr-commons</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>xml-apis</groupId> 
        <artifactId>xml-apis</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-httpclient</groupId> 
      <artifactId>commons-httpclient</artifactId> 
      <version>3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.jms</groupId> 
        <artifactId>jms</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jdmk</groupId> 
        <artifactId>jmxtools</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jmx</groupId> 
        <artifactId>jmxri</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4.3</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.activation</groupId> 
      <artifactId>activation</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse</groupId> 
      <artifactId>swt</artifactId> 
      <version>3.7.0</version> 
      <optional>true</optional> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.4</version> 
      <optional>true</optional> 
     </dependency> 
     <dependency> 
      <groupId>net.sourceforge.htmlcleaner</groupId> 
      <artifactId>htmlcleaner</artifactId> 
      <version>2.2</version> 
     </dependency> 
     <!-- included in Java 1.6, needed with Java 1.5 --> 
     <dependency> 
      <groupId>org.codehaus.woodstox</groupId> 
      <artifactId>woodstox-core-asl</artifactId> 
      <version>4.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.samba.jcifs</groupId> 
      <artifactId>jcifs</artifactId> 
      <version>1.3.14</version> 
     </dependency> 
     <dependency> 
      <groupId>net.freeutils.charset</groupId> 
      <artifactId>jcharset</artifactId> 
      <version>1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.boris.winrun4j</groupId> 
      <artifactId>winrun4j</artifactId> 
      <version>0.4.5</version> 
     </dependency> 
    </dependencies> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>apache.snapshots</id> 
      <url>http://repository.apache.org/snapshots</url> 
      <releases> 
       <enabled>false</enabled> 
      </releases> 
     </pluginRepository> 
    </pluginRepositories> 
    <build> 
     <sourceDirectory>src/java</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Cosa c'è di sbagliato?

+1

I file '.lastupdated' non sono veri artefatti. L'ultima volta li ha cercati a quel timestamp e non li ha trovati. Le dimensioni dei file dovrebbero essere un regalo. Vedi: http://stackoverflow.com/questions/2529218/maven-downloads-have-lastupdated-as-extension – RaGe

+0

Grazie, ho ignorato il .'lastUpdated' nel nome del file 'swt-3.7.0.jar.lastUpdated' . Ho già questi file nella cartella libs del progetto. Anche il comando Maven copia i file nella cartella del repository Maven? –

+0

Se sei connesso a Internet, esegui semplicemente maven con il flag -U, forza il download delle dipendenze. – RaGe

risposta

3

Secondo this DavMail page, org.eclipse:swt:jar:3.7.0 è una dipendenza opzionale. Non è nel mavenCentral, probabilmente si potrebbe caccia giù da qualche altro repository, ma la cosa più semplice da fare sarebbe quella di rimuovere che la dipendenza dal vostro pom e ricostruire utilizzando -U

alternativa, come discusso here, è può scaricare il vaso da here e installarlo sul repo .m2 locale utilizzando il comando install:

mvn install:install-file -DgroupId=org.eclipse -DartifactId=swt -Dversion=3.7.0 -Dpackaging=jar -Dfile=lib/swt-3.7-win32-x86.jar 

si prega di notare, però, che si tratta di una soluzione temporanea, che dovrà essere ripetuto su ogni macchina che si desidera costruisci questo progetto. Questo tipo sconfigge il punto di scaricare la gestione delle dipendenze da uno strumento come Maven. Preferirei comunque rimuovere swt come dipendenza dal tuo progetto se questo funziona.

+0

I barattoli SWT sono già nel codice sorgente estratto. Non è necessario scaricarli di nuovo. –

3

Ignorare la risposta precedente.

Maven central non ha versione 3.7.0 per org.eclipse.swt. L'ultima versione di Maven Central è la 3.3.0. You can see that in the link here. mvnrepository.com doesn't have it either.

Si potrebbe provare a utilizzare la versione 3.3.0 o si potrebbe provare manualmente aggiungere nella vostra cartella di origine, ma, ancora una volta, il latest version available on their website is 4.4.2

+0

Se ho cancellato il file 'swt-3.7.0.jar.lastUpdated' e' swt-3.7.0.pom.lastUpdated', li recupero, se clicco su "Aggiorna progetto". Per gli altri file ho copiato manualmente in quella cartella e cliccato su "Aggiorna progetto" che funzionava. –