2017-03-17 13 views
3

libフォルダにある私のGradle/Buildshipプロジェクトに*.jarというファイルがあります。私は私のbuild.gradle経由でそれを含める:"ソース" JARのローカルJAR依存関係を指定する方法は?

compile files('libs/local-lib.jar')

私も、私はそれに接続したい対応local-lib-sources.jarファイルを持っています。 Eclipseでは、手動で管理されている依存関係の場合、これはビルドパスエントリ->のコンテキストメニューを介して動作します。-> Javaソースアタッチメント。ただし、gradle-managed依存関係の場合、そのオプションは使用できません。

これを行うにはどのようにgradle/buildshipの方法を知っていますか?私の依存関係はリポジトリにありませんので、今のところはcompile filesです。

+1

試しましたか? http://stackoverflow.com/questions/10156847/how-to-tell-gradle-to-download-all-the-source-jars – Adonis

答えて

3

あなたは、EclipseでBuildshipを使用する場合、これは現在のGradleでサポートされていないので、あなたは(https://discuss.gradle.org/t/add-sources-manually-for-a-dependency-which-lacks-of-them/11456/8を参照)運の外にあります。

apply plugin: 'eclipse' 

eclipse.classpath.file { 
    withXml { 
    xml -> 
    def node = xml.asNode() 
    node.classpathentry.forEach { 
     if([email protected] == 'lib') { 
     def sourcePath = [email protected]('.jar', '-sources.jar') 
     if(file(sourcePath).exists()) { 
      [email protected] = sourcePath 
     } 
     } 
    } 
    } 
} 

あなたは、コマンドラインからgradle eclipseを実行し、インポートします:あなたはEclipseのドットファイルを生成し、あなたのbuild.gradleにこのような何かを行うことができ、手動でBuildshipを使用していないと、OKであれば

repositories { 
    flatDir { 
     dirs 'lib' 
} 
: - インポートを使用してEclipseにプロジェクト>は別の(おそらくより良い)オプションは、このようなフラットファイルリポジトリを使用することです

「既存プロジェクトをワークスペースへ」

を参照してください。https://docs.gradle.org/current/userguide/dependency_management.html#sec:flat_dir_resolver

他のものと同様に依存関係を含めることもできます。あなたのケースで:

compile ':local-lib' 

この方法Buildshipは自動的にほとんどの部分は通常のリポジトリのようなflatDir行為以来-sources.jarファイルを検索します。

+0

感謝のEclipse " – Alan47

0

libと呼ばれる余分なフォルダなどをsrcと同じディレクトリレベルで使用するか、スクリプトを作成します。

dependencies { 
//local file 
    compile files('lib/local-lib-sources.jar') 
// others local or remote file 
} 
+0

私はそれについてお詫び申し上げます。(申し訳ありません):あなたのコードが動作している間実際にEclipseプロジェクトのクラスパスに "sources.jar"を追加しても、ソースを "リンク"しません。したがって、* .jarによって提供されるクラスに入ると、残念ながら* -sources.jarの対応するファイルは表示されませんが、Eclipse * .classファイル(バイトコード)ビューアは表示されます。 – Alan47

+0

éclipseではeclipse market placeに行き、 "java decompiler"プラグインを見てください。ソースコードが今すぐ表示されます – Incognito

+0

私はこの問題の解決策も探しています。 Java Decompilerプラグインは、javadoc情報を提供しないため、完全な解決策ではありません。プラグインを適用します:「Javaのプラグインを適用します。 日食{ クラスパス{ downloadJavadoc =真 downloadSources =真 }これを指摘して – user1585916

関連する問題