2017-03-25 3 views
4

コンパイルの依存関係としてcom.sun.tools jarが必要なので、Intellijプロジェクトのlibsフォルダにコピーしました。しかし、私はgradleを使用しようとしています。私は自分のモジュールのうちの1つに依存するものとしてのみ必要です。どうすればいいの?私は現在、私のモジュールのjarタスクでこれを持っている:私もちょうど私の全体のプロジェクトのクラスパスにjarファイルを入れてみました、それはだ私のGradle JARクラスパスbuildscriptにcom.sun.tools JARを組み込む方法、また私のIDEと同期させる方法は?

compile fileTree(dir: 'lib', include: '*.jar') 

jar { 

    from('build/classes/main/') 
    from('libs/tools.jar') 

    manifest { 
     attributes 'Manifest-Version': '1.0', 
       'Class-Path': configurations.runtime.files.collect {"../lib/${it.name}" }, 
} 

は、私も私のモジュールの「依存関係」の閉鎖でこれを試してみましたまだコンパイルしていません:

classpath ":tools" 

多分正しいですが、私のIDEが正しくリフレッシュされていませんか?私はすでに

apply plugin: 'idea' 

プラグインを持っていると私はこれをしようとするまで、それは完璧に仕事をしています。

EDIT:アノテーションプロセッサ用ですので、モジュールjarビルドに含めるようにしています。他のモジュールは依存しません。それを行うより良い方法は、瓶をコピーするよりもですか?

+0

[This(http://stackoverflow.com/a/20956456/104891)が動作するはずです。 IntelliJ IDEAでは、JSDK設定クラスパスに 'tools.jar'を置くだけで十分です。 – CrazyCoder

+0

@CrazyCoder、ナー、それを考え出した。私は朝の考えで答えを投稿するよ –

答えて

2

jarファイルをコピーせずにtools.jarの上の依存関係を表現する方法があります:

dependencies { 
    compile files("${System.getProperty('java.home')}/../lib/tools.jar") 
} 

のIntelliJ 2017.1は問題なくモジュールの依存関係としてそれを認識し、インポートすることができます。

JREにはtools.jarが含まれていないため、JDKで実行すると動作します。

+0

それは私のために働いた!今、完璧に働いて、ありがとう。今すぐコンパイラを使いこなす時間 –

関連する問題