2010-12-01 5 views
1

JDKのtools.jarをプロジェクトの依存関係として追加する必要があります。MavenのsystemPathがランタイムクラスパスに追加されない

Mavenリポジトリにインストールするときにjarファイルにバージョン番号を追加するため、通常の依存関係として設定することはできません。その後、クラスパスにtools.jarが必要なものが必要な場合、失敗します。

システムスコープを使用し、< systemPath>を使用してjarへのパスを設定すると問題が解決するはずです。ただし、テストではjarがクラスパスに追加されますが、実行時にはそれはありません。

方法はありますか?

Btw、私は< useManifestOnlyJar> false </useManifestOnlyJar>をクラスパスのすべてのファイルを見ることができるようにsurefirepluginに追加しました。

+0

を参照してください?それは戦争、実行可能な瓶、または何か他のものですか?起動スクリプトはありますか?言い換えれば、Mavenによって準備されたランタイムクラスパスをどのように使用しますか? –

答えて

3

MavenはJDKで動作していますか?

は、JDKを指すようにJAVA_HOMEのENV変数を設定し-ver

MVN、それが実行されているのJavaのバージョンを確認します。

+1

+1:JREでMavenを実行している場合、tools.jarはランタイムクラスパスに含まれません。 – jgifford25

+0

JDKの下で実行している場合でも、プロパティjava.homeは引き続きjreに設定されます。http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuideを参照してください。 – RCross

1

それはあなたのJDK、利用システムの範囲に含まれていない場合、あなたはランタイムでアプリケーションを実行するのですかFAQ

<profiles> 
    <profile> 
    <id>default-tools.jar</id> 
    <activation> 
     <property> 
     <name>java.vendor</name> 
     <value>Sun Microsystems Inc.</value> 
     </property> 
    </activation> 
    <dependencies> 
     <dependency> 
     <groupId>com.sun</groupId> 
     <artifactId>tools</artifactId> 
     <version>1.4.2</version> 
     <scope>system</scope> 
     <systemPath>${java.home}/../lib/tools.jar</systemPath> 
     </dependency> 
    </dependencies> 
    </profile> 
</profiles> 
関連する問題