2012-12-18 17 views
6

Ho problemi nell'importare un progetto di maven che è stato creato da Netbeans nell'IDEA 12. Gli elementi di dipendenza scritti nel pom non funzionano. Mi ha detto che "non può risolvere il simbolo 'springframework'" in "import org.springframework.xxx;". Quando lo eseguo, dice che org.springframework.xxx non esiste. Ecco il file pomCome configurare un progetto di maven in Intellij IDEA 12

<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>cn.edu.seu.cose.jellyjolly</groupId> 
<artifactId>jellyjolly-openshift-dist</artifactId> 
<packaging>war</packaging> 
<version>1.0</version> 
<name>Jelly Jolly Openshift Distribution</name> 
<organization> 
    <name>College of Software Engineering, Southeast University</name> 
    <url>http://cose.seu.edu.cn/</url> 
</organization> 
<repositories> 
    <repository> 
     <id>eap</id> 
     <url>http://maven.repository.redhat.com/techpreview/all</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
    <repository> 
     <id>maven-restlet</id> 
     <name>Public online Restlet repository</name> 
     <url>http://maven.restlet.org</url> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>eap</id> 
     <url>http://maven.repository.redhat.com/techpreview/all</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </pluginRepository> 
</pluginRepositories> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.6</maven.compiler.source> 
    <maven.compiler.target>1.6</maven.compiler.target> 
    <netbeans.hint.license>gpl30</netbeans.hint.license> 
</properties> 
<dependencies> 
    <dependency> 
     <groupId>org.jboss.spec</groupId> 
     <artifactId>jboss-javaee-6.0</artifactId> 
     <version>3.0.0.Final-redhat-1</version> 
     <type>pom</type> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.1.3.RELEASE</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.restlet.jee</groupId> 
     <artifactId>org.restlet</artifactId> 
     <version>2.0.0</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.restlet.jee</groupId> 
     <artifactId>org.restlet.ext.xml</artifactId> 
     <version>2.0.0</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>net.java.dev.rome</groupId> 
     <artifactId>rome</artifactId> 
     <version>1.0.0</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.21</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.1.3.RELEASE</version> 
    </dependency> 
</dependencies> 
<profiles> 
    <profile> 
     <!-- When built in OpenShift the 'openshift' profile will be used when 
        invoking mvn. --> 
     <!-- Use this profile for any OpenShift specific customization your app 
        will need. --> 
     <!-- By default that is to put the resulting archive into the 'webapps' 
        folder. --> 
     <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html --> 
     <id>openshift</id> 
     <build> 
      <finalName>jellyjolly</finalName> 
      <plugins> 
       <plugin> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.1.1</version> 
        <configuration> 
         <outputDirectory>webapps</outputDirectory> 
         <warName>ROOT</warName> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

+0

Dovrebbe essere semplice e indipendente da Netbeans. Forse controlla le impostazioni generali di Maven (File -> Impostazioni -Maven) e prova a reimportare il progetto (clic con il tasto destro del mouse su -> Maven -> Reimport). Controlla anche alcuni "errori" nel tuo pom.xml. Forse c'è un "errore" che NetBeans ha ignorato, ma non IDEA. – Adrian

+0

In realtà potrebbe esserci un errore nel file pom. Il suggerimento è "Impossibile ottenere informazioni sulla dipendenza: impossibile leggere il file di metadati per artefatto" javax.activation: activation: jar ": impossibile analizzare la dipendenza" [0.9.1.2, 0.9.1.2-redhat-1] "di dipendenza 'c3p0: c3p0: jar': Range defies ordinamento delle versioni: [0.9.1.2.0.9.1.2-redhat-1] per progetto sconosciuto: jboos-dependency-management-build ... dai repository remoti specificati: central, eap, ... Path to dependency xxx: xxx: war ... ". Significa che alcuni artefatti non possono essere recuperati dai repository elencati? – rAy

+0

Comportamento molto strano. Si prega di ricontrollare la versione di IDEA di Mavne, forse si potrebbe provare a sovrascrivere la versione interna con quella esterna. – Adrian

risposta

6

Se il progetto viene eseguito sulla riga di comando (mvn clean install) la probabilità è come 100% che funzionerà in IntelliJ 12 troppo :-)

Dopo File -> Importa progetto -> Dal modello Maven esterno dovresti vedere i moduli.

Quello che vorrei controllare nelle impostazioni di IntelliJ è il percorso della home directory di Maven (File -> Impostazioni -> Maven) e i file settings.xml che legge (o non legge).

Lo mvn install all'interno dell'IDE non dovrebbe differire da ciò che accade sulla riga di comando. Se lo fa, confronta l'output mvn help:effective-settings dalla riga di comando e da IntelliJ (forse anche da Netbeans).

Se non visualizzi tutti i moduli, fai clic con il pulsante destro del mouse su parent-pom.xml e scegli maven -> reimport. Per risolvere le dipendenze devi eseguire un'installazione una volta. Non risolve automaticamente le dipendenze in tutti i casi.

+0

Anche se c'è un suggerimento di errore sul file pom che dice "Impossibile ottenere informazioni sulla dipendenza: impossibile leggere il file dei metadati per gli artefatti" javax.activation: activation: jar ": impossibile analizzare la versione" [0.9.1.2, 0.9 .1.2-redhat-1] 'fo dependency' c3p0: c3p0: jar '... Path to dependency xxx: xxx: war ... ", il processo di installazione di mvn clean è terminato con successo con il codice di uscita 0. Mi chiedevo se gli artefatti sono stati scaricati dai repository mvn remoti. Sembra che gli artefatti non possano essere trovati su questi repository. – rAy

+0

beh potrebbero essere rotte. Quindi vorrei eliminare il repository locale e riprovare. Usa anche help: effective-pom e help: impostazioni efficaci per verificare se maven central è nella tua lista di repository. – wemu

+0

Grazie per il vostro aiuto. Gli artefatti dal repository locale sono rotti come hai detto tu. La dipendenza dal framework di primavera e da altri è risolta, ma la dipendenza delle risorse che non sono presenti nel repository centrale rimane irrisolta. I repository non centrali dovrebbero essere dichiarati non solo in pom.xml ma anche in settings.xml? – rAy

0

aggiornare la versione del manufatto org.jboss.spec: jboss-JavaEE-6.0 fino a 3.0.1.Final-redhat-1

<dependency> 
    <groupId>org.jboss.spec</groupId> 
    <artifactId>jboss-javaee-6.0</artifactId> 
    <version>3.0.1.Final-redhat-1</version> 
    <type>pom</type> 
    <scope>provided</scope>  
</dependency> 
0

avuto lo stesso problema, è possibile semplicemente Destra + Fare clic sul codice e andare a Maven-> Reimport e dovrebbe fare il trucco

0

Ho usato mvn -U idea:idea per generare i file specifici IntelliJ con le dipendenze scaricate.

Problemi correlati