2016-02-03 8 views
5

私はCodename Oneを移植しようとしています。引数を渡すためのrun {}ブロックに相当するgradle用のデバッグターゲット

java -classpath CodenameOneJarList com.codename1.impl.javase.Simulator nameOfTheMainClassForTheApp 

はGradleの中でこれを行うには、私のような基本的なビルドスクリプトを編集した:

apply plugin: 'java' 
apply plugin: 'application' 
mainClassName = "com.codename1.impl.javase.Simulator" 

// for netbeans 
ext.mainClass = 'com.codename1.impl.javase.Simulator' 
あなたはシミュレータ上のコードネーム1つのアプリを実行すると、アプリのメインクラスではなく、何かのように実行していません

は、その後、私はこれをしなかった一番下:

run { 
    args 'com.mycompany.myapp.Main' 
} 

これは期待通りに働いていたとIDE(NetBeansの)で実行を押したときに、シミュレータを立ち上げました。私はこれが "正しいこと"であるかどうか、それが他のIDEでうまくいくかどうかはわかりません。

私はデバッガで起動しようとしましたが、runターゲットが呼び出されなかったと推測しているので、引数は渡されませんでしたか?

私はこれをやってみました:

debug { 
    args 'com.mycompany.myapp.Main' 
} 

明らかに失敗しました。私はデバッガに引数を渡す場所が正確にはわかりません。

これはgradleによって標準化されていますか?

私は正しい方向に引数渡しですか?

「実行」宣言構文はどのようにマップされますか?他の潜在的な宣言ブロックタイプを見つけるにはどうすればよいですか?

残念ながら、run/debugのような基本的なものでグーグルーグしても何か役に立つものはありません。

答えて

1

build.gradleのrunセクションは、適用したapplicationプラグインからプロジェクトに追加されたDSLです。プラグインについて約Here is more informationご存じのように、アプリケーションプラグインは、実行可能なjarを生成、配布、実行するためのもので、デバッグ用ではありません。 Gradleのからjavaプロセスを開始するには

、あなたはJavaExecタスク、およびデバッグオプションを含むがこれらに限定されないargsフィールドを使用して任意のJVM引数を、使用することができます。デバッグモードでアプリケーションを起動して、あなたのIDEを添付する

task runApp(type: JavaExec) { 
    classpath = sourceSets.main.runtimeClasspath 
    main = 'package.Main' //class to run 

    // add debug arguments as required, for example: 
    args '-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n' 
} 

実行gradle runApp

あなたのような何かを行うことができます。 Netbeansにはあまり詳しくないので、NetbeansをデバッグJavaプロセスに接続する方法についてはコメントできません。

+0

ありがとうございました。それで、私はそれを可能にするプラグインはありますか?デバッグの対象を定義し、一般的にはIDEが必要とするすべてのタスクを定義します。これを実行するには、IDEごとに特定の作業を行う必要がありますか?後者の場合はどこでこのようなハックを探し始めますか? –

+0

FYI明らかにnetbeansのgradleプラグインがインストールされています;-) –

+0

netbeansのプレーンなJava(非グラデーション)プロジェクトで特定のクラスをどのようにデバッグしますか? – RaGe

関連する問題