私はMavenで構築された簡単なコンソールJavaアプリケーションを作成しました。メインクラス(引数を必要としない)は、次のようなmavenコマンドを使用してコマンドラインから実行することができます。
mvn run-app com.example.MainClass
maven-exec-plugin を試してください。そこから:
mvn exec:Java -Dexec.mainClass="com.example.Main"
これはあなたのクラスをJVMで実行します。引数を渡すために-Dexec.args="arg0 arg1"
を使うことができます。
Windowsを使用している場合は、
exec.mainClass
とexec.args
に引用符を付けます。mvn exec:Java -D"exec.mainClass"="com.example.Main"
これを定期的に行っている場合は、pom.xmlにもパラメータを追加できます。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>Java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>foo</argument>
<argument>bar</argument>
</arguments>
</configuration>
</plugin>
Maven execがここでトリックをするけれども、私はそれが本当のテストのためにかなり貧弱であるとわかりました。 Maven Shell を待っていて、これが他の人に役立つことを望んでいる間に、私はついにこのリポジトリに出ました mvnexec
クローンを作成し、パスのどこかに スクリプト をシンボリックリンクします。パスに~/bin/mvnexec
があるので、私は~/bin
を使用します。私はmvnexecがスクリプトの良い名前だと思いますが、シンボリックリンクを変更するのはあなた次第です...
Srcとtargetディレクトリを見ることができるあなたのプロジェクトのルートからそれを起動してください。
スクリプトをmainメソッドでクラスを検索し、選択するための選択を提供します(mavenized JMeld プロジェクトの例)
$ mvnexec
1) org.jmeld.ui.JMeldComponent
2) org.jmeld.ui.text.FileDocument
3) org.jmeld.JMeld
4) org.jmeld.util.UIDefaultsPrint
5) org.jmeld.util.PrintProperties
6) org.jmeld.util.file.DirectoryDiff
7) org.jmeld.util.file.VersionControlDiff
8) org.jmeld.vc.svn.InfoCmd
9) org.jmeld.vc.svn.DiffCmd
10) org.jmeld.vc.svn.BlameCmd
11) org.jmeld.vc.svn.LogCmd
12) org.jmeld.vc.svn.CatCmd
13) org.jmeld.vc.svn.StatusCmd
14) org.jmeld.vc.git.StatusCmd
15) org.jmeld.vc.hg.StatusCmd
16) org.jmeld.vc.bzr.StatusCmd
17) org.jmeld.Main
18) org.Apache.commons.jrcs.tools.JDiff
#?
1つが選択されている場合(数字を入力している場合)、引数を要求されます(mvnexec -P
を使用すると回避できます)。
デフォルトでは実行ごとにプロジェクトをコンパイルします。しかしmvnexec -B
を使うことでそれを避けることができます
テストクラス-M
または--no-main
、またはメインクラス-T
または--no-test
でのみ検索できます。名前オプション-f <whatever>
によるフィルタもあります。
これで時間が節約できることを願っています。私にとってはそうです。