2011-01-05 58 views
0

,我已經添加了與範圍編譯的依賴關係。這是一個包含一些類文件和jar的jar文件。我當前的java文件需要依賴jar的內部jar來編譯。Maven:編譯一個項目中的一個Jar中的所有依賴關係

但maven編譯目標返回編譯錯誤。 :banghead:

所有需要編譯的jar文件都在單個jar文件中,這個jar文件是依賴添加的.......................... ...

請幫幫我!

我POM:

<project> 
    <!-- ... --> 
    <dependencies> 
    <dependency> 
     <groupId>eagle</groupId> 
     <artifactId>zkui</artifactId> 
     <version>360LTS</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <sourceDirectory>./src/main/java</sourceDirectory> 
    <outputDirectory>./target/classes</outputDirectory> 
    <finalName>${project.groupId}-${project.artifactId}</finalName> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

錯誤:

package org.zkoss.zk.ui does not exist this package org.zkoss.zk.ui is in jar file zkex.jar which is in dependency jar eagle:zkui:360LTS jar file

請幫我!!!! :jumpingjoy:

先感謝

回答

0

嗯,我想你可以

  • 使用dependency:unpack解壓罐子目標/ lib或左右(之前編譯)
  • 排除一切

    停用compiler:compile
    <excludes> 
        <exclude>**/*.java</exclude> 
    </exclude> 
    
  • 使用antrun:run與螞蟻javac任務編譯源代碼,這樣的事情(綁定執行逐步compile):

    <target> 
        <javac srcdir="${project.build.sourceDirectory}" 
          destdir="${project.build.outputDirectory}"> 
         <classpath> 
          <pathelement path="${maven.compile.classpath}"/> 
          <fileset dir="${project.build.directory}/lib"> 
           <include name="**/*.jar"/> 
          </fileset> 
         </classpath> 
        </javac> 
    </target> 
    

然而,儘管這將有助於你編譯您的應用程序,它不會幫助您運行部署您的應用程序。

0

您可以使用元素來做到這一點:

<dependencies> 
    <dependency> 
     <groupId>groep.does.not.matter</groupId> 
     <artifactId>neither-does-artifactId</artifactId> 
     <version>and.nor-does-version</version> 
     <type>jar</type> 
     <scope>system</scope> 
     <systemPath>${project.baseDir}/lib/jarname.jar</systemPath> 
    </dependency> 
    </dependencies> 

,你需要引用(和在類路徑)的jar的lib/jarname.jar和lib目錄是根你的項目。

0

我相信你實際上沒有使用適當的依賴關係。 ZK實際上有here所述的Maven倉庫。

您需要檢查您需要哪些依賴關係。例如,對於zkex,你需要這樣的:

<dependency> 
     <groupId>org.zkoss.zk</groupId> 
     <artifactId>zkex</artifactId> 
     <version>${zk.version}</version> 
    </dependency> 

您還需要添加ZK Maven倉庫:

<repositories> 
     <repository> 
      <id>zk repository</id> 
      <url>http://mavensync.zkoss.org/maven2</url> 
     </repository> 
     <!-- If Using ZK EE or ZK PE Respository (not evaluation version), you need to add login info into ~/.m2/settings.xml --> 
     <repository> 
      <id>ZK PE Evaluation</id> 
      <url>http://mavensync.zkoss.org/zk/pe-eval</url> 
     </repository> 
     <repository> 
      <id>ZK EE Evaluation</id> 
      <url>http://mavensync.zkoss.org/zk/ee-eval</url> 
     </repository> 
    </repositories> 

祝你好運! :-)

相關問題