2016-06-22 5 views
1

私はJavaアプリケーションを実行する必要があるgradleタスクを作成していますが、私はAndroidプロジェクトのクラスパスを取得できません。Androidプロジェクトのクラスパスをグラデルで取得

マイGradleのタスク:

task helloWorld(type: JavaExec) { 
    classpath = buildscript.configurations.classpath; 
    main = "com.test.HelloWorld"; 
} 

これは動作しません。

クラスパス(すべてのクラスと依存関係を含む)を取得するにはどうすればよいですか?

+0

[Androidプラグインを使用しているgradleプロジェクトのクラスパスを取得する]の可能な複製(http://stackoverflow.com/questions/28222747/get-classpath-for-gradle-project-using-android-plugin) – sschuberth

答えて

1

ソースフォルダとライブラリの解決策を見つけました。 しかし、私はまだandroid.jarが欠けています。 この問題の別の質問があります:Finding android.jar for a own written Java task (in gradle)

class JavaTask extends JavaExec {  
    @Override 
    void exec() { 
     List<String> classpaths = new ArrayList<>(Arrays.asList(getClasspath().getAsPath().split(";"))); 

     project.android.libraryVariants.all { variant -> 
      classpaths.add(variant.javaCompile.destinationDir.getPath()); 
     } 

     org.gradle.api.artifacts.Configuration config = project.configurations.getByName("compile"); 
     for (String path : config.getAsPath().split(";")) { 
      classpaths.add(path); 
     } 

     setClasspath(project.files(classpaths.toArray(new String[classpaths.size()]))); 
     super.exec(); 
    } 
} 
0

は、この質問の第二の答えを確認してください: https://stackoverflow.com/a/40515402/3130610

それはトリックを行います。

+1

質問...質問すでにその欺瞞の兆候となっています。 –

関連する問題