2012-12-20 48 views
0

我有一個RAD 7.5中的舊項目,構建爲JAR以用作其他項目中的庫。我試圖將它轉換爲使用Maven構建(將大部分項目移動到Maven的更大努力的一部分),並且我被困在類路徑中。 pom.xml中看起來liket他:將舊的Eclipse/RAD項目轉換爲使用Maven構建 - 問題與.classpath

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <name>My Framework Jar</name> 
    <groupId>com.mycompany</groupId> 
    <artifactId>MyFramework</artifactId> 
    <version>1.0.1</version> 
    <packaging>jar</packaging> 
    <build> 
      <!-- can't change the directory structure to how Maven likes it so specify the source directory --> 
     <sourceDirectory>src/com/mycompany</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-jar-plugin</artifactId> 
       <groupId>org.apache.maven.plugins</groupId> 
       <version>2.1</version> 
       <configuration> 

        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <!-- This will add project version into manifest file--> 
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
     <finalName>MyFramework</finalName> 
    </build> 
</project> 

的問題是,當我嘗試製作一個罐子,我得到的是,在jar文件中引用的類名「無法找到符號」錯誤噸,這個項目是依賴上。已經有一個.classpath文件似乎是RAD用於構建項目的內容 - 是否有一種方法讓Maven讀取該文件,以便知道需要哪些jar包?

+0

您是否使用Eclipse Maven插件從您的pom更新您的IDE設置?你怎麼生產這個罐子?搜索m2e或m2eclipse。 – McDowell

+0

我正在使用Eclipse Maven插件,但我沒有通過Maven更新任何現有設置(我想先讓它工作)。 – FrustratedWithFormsDesigner

回答

0

由於Maven管理機器上存儲庫中的依賴關係,並使用它們來編譯和運行您的項目,這些庫不再直接在您的項目中。所以你可能不得不改變你的.classpath指向你的repo(〜/ .m2)。當我使用Maven時,Eclipse有一個很好的插件,可以將項目轉換爲Maven項目。這個插件允許在pom中管理類路徑。

+0

我認爲問題在於Maven似乎沒有讀取現有的.classpath文件。我認爲如果它確實如此,那麼它會知道如何找到它認爲缺失的依賴關係。 – FrustratedWithFormsDesigner

+0

正確,我不認爲Maven實際上讀取這些文件。 .classpath由Eclipse爲其自己的目的而生成。我認爲Maven讀取的唯一文件是pom.xml –

+0

真的嗎?那麼在這種情況下,我需要讓Maven知道已經在.classpath文件中列出的本地jar文件。我如何告訴Maven使用特定的jar文件?我嘗試使用,但Maven正試圖從某處下載jar。不是我想要的,因爲罐子已經存在於工作區中。 – FrustratedWithFormsDesigner