Почему компилятор maven не может разрешить класс из зависимости? - PullRequest
1 голос
/ 23 августа 2010

Eclipse может построить этот проект, jar зависимостей находится в локальном репозитории, компилятор выводит jar. Я использую Eclipse Helios с Maven Integration для Eclipse (0.10.2);

И все же это терпит неудачу, потому что компилятор не может разрешить PropertiesEditor из spring-beans-2.5.6.jar.

Вот полный отчет о сборке

http://wellingtonpeoplescentre.org.nz/geek/maven-wigout.txt

и вот мой POM.

<?xml version="1.0" encoding="UTF-8"?>
<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>witerat</groupId>
 <artifactId>iWPC</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>WPC on the web</name>
 <url>http://wellingtonpeoplescentre.org.nz</url>
 <organization>
  <name>Wellington People's Centre</name>
  <url>http://wellingtonpeoplescentre.org.nz</url>
 </organization>


 <build>
  <defaultGoal>package</defaultGoal>
  <finalName>iBffsdb</finalName>
  <sourceDirectory>src/main/java</sourceDirectory>
  <testSourceDirectory>src/test/java</testSourceDirectory>
  <directory>target</directory>  
  <resources>
   <resource>
    <directory>src/main/resources</directory>
   </resource>
  </resources>
  <testResources>
   <testResource>
    <directory>src/test/resources</directory>
   </testResource>
  </testResources>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>

    <version>2.1-beta-1</version>
    <configuration>
    <overlays>
    <!-- 
      <overlay>      
       <groupId>org.dojotoolkit</groupId>       
       <artifactId>dojo-war</artifactId>
       <targetPath>javascript</targetPath>
      </overlay> -->
      <overlay>
       <groupId>jcivicrm-dao</groupId>
       <artifactId>jcivicrm-dao</artifactId>
       <type>jar</type>
       <targetPath>WEB-INF/classes</targetPath>
      </overlay>
    </overlays>
    <warSourceDirectory>WebContent</warSourceDirectory>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
        <encoding>Cp1252</encoding>


     <verbose>true</verbose>    
     <source>1.6</source>
     <target>1.6</target>
    </configuration>
   </plugin>

  </plugins>
 </build>
 <repositories>
  <repository>
   <id>snapshots-local</id>
   <name>snaps</name>
   <url>http://localhost:12120/nexus-webapp-1.7.1/content/repositories/snapshots/</url>
   <releases>
    <enabled>false</enabled>
   </releases>
   <snapshots>
     <enabled>true</enabled>
    <updatePolicy>always</updatePolicy>
    <checksumPolicy>warn</checksumPolicy>
   </snapshots>
  </repository>
 </repositories>
 <dependencies>
  <dependency>
   <groupId>jcivicrm-dao</groupId>
   <artifactId>jcivicrm-dao</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </dependency><dependency>
   <groupId>JCivicrm-platform</groupId>
   <artifactId>JCivicrm-platform</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </dependency><dependency>
   <groupId>JCiviCRM</groupId>
   <artifactId>JCiviCRM</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </dependency><dependency>
   <groupId>nz.org.wpc.user.security</groupId>
   <artifactId>nz.org.wpc.user.security</artifactId>
   <version>0.0.1-SNAPSHOT</version>
    </dependency><dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.1.111</version>
  </dependency><dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   <version>3.2.1</version>
  </dependency><dependency>
   <groupId>commons-dbcp</groupId>
   <artifactId>commons-dbcp</artifactId>
   <version>1.2.2</version>
  </dependency><dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.4</version> 
   <scope>provided</scope>
  </dependency><dependency>
   <groupId>javax</groupId>
   <artifactId>mail</artifactId>
   <version>1.5</version>
   <scope>system</scope>
   <systemPath>c:\sun\sdk\lib\mail.jar</systemPath>
  </dependency><dependency>
   <groupId>javax.transaction</groupId>
   <artifactId>jta</artifactId>
   <version>1.0.1B</version>
  </dependency><dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.2</version>
   <scope>system</scope>
   <systemPath>C:\dev\eclipse\plugins\org.junit_3.8.2.v20080602-1318\junit.jar</systemPath>
  </dependency><dependency>
     <groupId>net.sf.ehcache</groupId>
     <artifactId>ehcache</artifactId>
     <version>1.6.0</version>
    </dependency><dependency>
   <groupId>net.sf.json-lib</groupId>
   <artifactId>json-lib-ext-spring</artifactId>
   <version>1.0.2</version>
  </dependency><dependency>
     <groupId>org.aspectj</groupId>
     <artifactId>aspectjrt</artifactId>
     <version>1.5.4</version>
     <scope>runtime</scope>
  </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-orm</artifactId>
   <version>2.5.6</version>
  </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>2.5.6</version>
  </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context-support</artifactId>
   <version>2.5.6</version>
  </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-jdbc</artifactId>
   <version>2.5.6</version>
  </dependency><dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-core</artifactId>
   <version>2.0.4</version>
   <exclusions>
    <exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-aop</artifactId>
    </exclusion><exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-support</artifactId>
    </exclusion><exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-remoting</artifactId>
    </exclusion>
   </exclusions>
  </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aop</artifactId>
   <version>2.5.6</version>
  </dependency><dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-acl</artifactId>
   <version>2.0.4</version>
  </dependency><dependency>
     <groupId>org.springframework.security</groupId>
     <artifactId>spring-security-core-tiger</artifactId>
     <version>2.0.4</version>
    </dependency><dependency>
     <groupId>org.springframework.security</groupId>
     <artifactId>spring-security-taglibs</artifactId>
     <version>2.0.5.RELEASE</version>
    </dependency><dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-beans</artifactId>
   <version>2.5.6</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency><dependency>
   <groupId>velocity</groupId>
   <artifactId>velocity</artifactId>
   <version>1.4</version>
  </dependency><dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
   <version>3.2.6.ga</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>
 </dependencies>

 <distributionManagement>
  <repository>
   <id>releases-local</id>
   <name>releases</name>
   <url>http://localhost:12120/nexus-webapp-1.7.1/content/repositories/releases/</url>
  </repository>
  <snapshotRepository>
   <id>snapshot-local</id>
   <name>snaps</name>
   <url>http://localhost:12120/nexus-webapp-1.7.1/content/repositories/snapshots/</url>
  </snapshotRepository>
 </distributionManagement>
</project>

1 Ответ

0 голосов
/ 17 февраля 2013

Да, m2eclipse старый или содержит несколько ошибок.

Здравствуйте, вы столкнулись с той же проблемой, с которой я боролся более 20 часов. Плагин m2eclipse имеет компилятор J2SE 1.5 где-то внутри его свойств, даже если вы указали правильный в pom.xml, он часто ломается.

create your own command: 
1) right click on project
2) Run as 
3) Run as maven build (5-th one)
4) on configuration panel specify your goals (site / test / clean)
5) **on JRE panel specify your JRE 1.6**
6) save your command as e.g. "maven site JDK 6"
7) run everything using your customs commands ("maven site JDK 6"), not built in commands. 

ЗДЕСЬ МОИ ДРУГИЕ СОВЕТЫ 1) используйте свой собственный maven, а не встроенный в m2eclipse, вы можете переключиться на него в настройках m2eclipse

2) изменить расположение репозитория с глупого C: \ Users \ current_user-m2 \ repository в D: \ репозиторий или в любой другой нормальный путь без ~ или каких-либо других специальных литров

3) Проверьте все в консоли с вашим собственным Maven до паники. Например, мои команды, такие как

mvn site
mvn install 
mvn tomcat:redeploy 

работает ОТЛИЧНО с консоли, но не работает из-за затмения. Это означает, что параметры m2eclipse неверны, и вы должны установить свои собственные параметры.

4) не полагайтесь на контекстные команды (щелкните правой кнопкой мыши - запустите как - maven test / site / build) создайте свою собственную команду в меню запуска от имени - maven, выберите правильную версию JRE (в моем случае - 1.7) и добавьте любые дополнительные параметры, не забудьте дать этой команде свое имя, например: "maven tomcat: redeploy JDK 7" - это даст вам хороший шанс запустить все, что вы хотите, и не столкнетесь с 90% проблем и ошибок m2eclipse.

P.S. Я боролся с Maven 2 и m2eclipse более 20 часов. Надеюсь, мои советы будут полезны для кого-то.

...