2011-01-05 5 views
0

があります。スコープコンパイルで依存関係が追加されました。これはいくつかのクラスファイルとjarファイルを含むjarファイルです。私の現在のJavaファイルには、コンパイルするための依存jarの内部jarが必要です。Maven:1つのJarにすべての依存関係をコンパイルするプロジェクトのpomに

しかし、mavenコンパイル目標のコンパイルエラーが返されます。 :banghead:

コンパイルに必要なすべてのjarファイルは、依存関係で追加される単一のjarファイルにあります。 ...

私を手伝ってください!

私のポンポン:

<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

まあ、私はあなたがすべて

を除外して compiler:compile

  • (コンパイル前)/ libのかそこらをターゲットにjarを解凍するために使用dependency:unpack
  • 無効ことができると思います

    <excludes> 
        <exclude>**/*.java</exclude> 
    </exclude> 
    
  • 使用しかし

    <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> 
    

、それはあなたがアプリケーションをコンパイル役立つだろうが、それは助けないでしょう:ソースをコンパイルするためのAnt javacタスク、この(compile相に実行をバインドする)のようなものでまたはアプリケーションを実行してください。

0

これを行うには、要素を使用することができます:あなたが参照する(そして、あなたのクラスパスを持っている)必要があるjarファイルをlibに/ jarname.jarがある、とlibディレクトリがのルートにある

<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> 

あなたのプロジェクト

0

私はあなたが実際に適切な依存関係を使用していないと信じています。 ZKは実際にはhereのようにMavenリポジトリを持っています。

必要な依存関係を確認する必要があります。あなたはまた、ZK Mavenのリポジトリを追加する必要があります

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

<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> 

幸運zkexについてたとえば、次のようなものが必要でしょう! :-)

関連する問題