2012-12-18 12 views
6

Mam problem z importowaniem projektu maven, który został utworzony przez Netbeans w IDEA 12. Artefakty zależności w pliku POM nie działają. Powiedział mi, że "nie można rozwiązać symbolu" springframework "na" import org.springframework.xxx; ". Kiedy go uruchomię, mówi, że org.springframework.xxx nie istnieje. Oto plik POMJak skonfigurować projekt maven w 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

Powinien być prosty i niezależny od Netbeans. Może sprawdź ogólne ustawienia Mavena (File -> Settings -Maven) i spróbuj ponownie zaimportować projekt (projekt Right click -> Maven -> Reimport). Sprawdź również niektóre "błędy" w pliku pom.xml. Może jest "błąd", który ignoruje netbeans, ale IDEA nie. – Adrian

+0

Właściwie może to być błąd w pliku pom. Wskazówka: "Nie można uzyskać informacji o zależnościach: Nie można odczytać pliku danych meta dla artefaktu" javax.activation: activation: jar ": Nie można przeanalizować wersji '[0.9.1.2, 0.9.1.2-redhat-1]' zależność fo "c3p0: c3p0: jar": Range wymusza zamawianie wersji: [0.9.1.2,0.9.1.2-redhat-1] dla projektu nieznanego: jboos-dependency-management-build ... z określonych zdalnych repozytoriów: central, eap, ... Ścieżka zależności xxx: xxx: war ... ". Czy to oznacza, że ​​niektórych artefaktów nie można pobrać z wymienionych repozytoriów? – rAy

+0

Bardzo dziwne zachowanie. Sprawdź ponownie wersję Mavne IDEA, być może możesz spróbować zastąpić wersję wewnętrzną zewnętrzną. – Adrian

Odpowiedz

6

Jeśli projekt przebiega na linii poleceń (mvn clean install) szansa jest jak 100% będzie to działać w IntelliJ 12 zbyt :-)

Po Plik -> Import projektu -> Z zewnętrznego modelu Maven powinieneś zobaczyć moduły.

Co mogę sprawdzić w ustawieniach IntelliJ to lokalizacja katalogu domowego maven (Plik -> Ustawienia -> Maven) i pliki settings.xml, które czyta (lub nie czyta).

Numer IDw IDE nie powinien różnić się od tego, co dzieje się w linii poleceń. Jeśli tak, to porówna dane wyjściowe z linii poleceń i IntelliJ (może również z Netbeans).

Jeśli po prostu nie widzisz wszystkich modułów kliknij prawym przyciskiem myszy na parent-pom.xml i wybierz maven -> reimport. Aby rozwiązać zależności, musisz raz wykonać instalację. Nie rozwiązuje automatycznie zależności we wszystkich przypadkach.

+0

Chociaż w pliku pom pojawia się komunikat o błędzie "Nie można uzyskać informacji o zależnościach: Nie można odczytać pliku danych meta dla artefaktu" javax.activation: activation: jar ': Nie można przeanalizować wersji' [0.9.1.2, 0.9 .1.2-redhat-1] 'zależność fo' c3p0: c3p0: jar '... Ścieżka zależności xxx: xxx: war ... ", proces instalacji clean mvn zakończył się pomyślnie z kodem zakończenia 0. Zastanawiałem się, czy artefakty zostały pobrane ze zdalnych repozytoriów mvn. Wygląda na to, że artefaktów nie można znaleźć na tych repozytoriach. – rAy

+0

cóż, mogą być zepsute. Więc usunę lokalne repozytorium i spróbuję ponownie. Użyj również help: effective-pom i help: effective-settings, aby sprawdzić czy maven central jest na twojej liście repozytoriów. – wemu

+0

Dziękuję za pomoc. Artefakty z lokalnego repozytorium są zepsute, jak powiedziałeś. Zależność struktury sprężynowej i innych jest rozwiązana, ale zależność artefaktów, które nie są obsługiwane w centralnym repozytorium pozostaje nierozwiązana. Czy należy również zadeklarować repozytorium inne niż pom.xml, ale również settings.xml? – rAy

0

Aktualizacja wersja artefaktu org.jboss.spec: JBoss-JavaEE-6,0 do 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

miał ten sam problem, można po prostu w prawo + Kliknij na kod i przejdź do Maven-> Reimport, a to powinno wystarczyć.

0

Użyłem mvn -U idea:idea do wygenerowania plików IntelliJ z pobranymi zależnościami.

Powiązane problemy