2010-11-26 15 views
0

私はNetbeans 6.9.1に既存のpomを持つmavenプロジェクトとしてインポートした "単純なスケーラプロジェクト(1.2)"アーキタイプに基づいてScalaプロジェクトを持っています。 Netbeansの内部からこのプロジェクトを正常に実行できますが、コマンドラインから実行する方法を理解することはできません。私はカップル同様の質問を見たが、私の状況にそれらを正常に適用することができませんでした。Netbeansを実行するコマンドラインからMaven Scalaアプリケーションを実行する

それはIDEで実行すると、実行コマンドは次のとおりです。

mvn -Dexec.classpathScope=runtime -Dexec.args=-classpath %classpath com.sentientswarm.trade_grouper.TradeParseMain /Users/jstanford/Development/test_data/trades/100410.csv -Dexec.executable=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java -Dnetbeans.execution=true process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec 

私は現実的なコマンドラインバージョンに来て最も近いです:

mvn -Dexec.classpathScope=runtime -Dexec.args=-classpath /Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper:/Users/jstanford/Development/scala/lib/scala-library.jar com.sentientswarm.trade_grouper.TradeParseMain /Users/jstanford/Development/test_data/trades/100410.csv -Dexec.executable=java process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec 

上記のクラスパスに含まれますプロジェクトのビルドされたクラスとスカラーライブラリのフォルダです。私はそこに何かが紛失しているかどうかはわかりません。結果は次のとおりです。ここで

[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: '/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper'. 
[WARNING] POM for 'org.apache.maven.plugins:maven-/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper-plugin:pom:LATEST' is invalid. 

Its dependencies (if any) will NOT be available to the current build. 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: org.apache.maven.plugins:maven-/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper-plugin 

Reason: POM 'org.apache.maven.plugins:maven-/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper-plugin' not found in repository: Unable to determine the latest version 

    org.apache.maven.plugins:maven-/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper-plugin:pom:LATEST 


for project org.apache.maven.plugins:maven-/Users/stanford/Development/NetBeansProjects/target/classes/com/sentientswarm/trade_grouper-plugin 


[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1 second 
[INFO] Finished at: Thu Nov 25 23:15:14 PST 2010 
[INFO] Final Memory: 8M/81M 
[INFO] ------------------------------------------------------------------------ 

はのpom.xmlです:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.sentientswarm</groupId> 
    <artifactId>trade_grouper</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <inceptionYear>2008</inceptionYear> 
    <properties> 
     <scala.version>2.8.0</scala.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>scala-tools.org</id> 
      <name>Scala-Tools Maven2 Repository</name> 
      <url>http://scala-tools.org/repo-releases</url> 
     </repository> 
     <repository> 
      <id>BumNetworksReleaseRepository</id> 
      <name>Bum Networks Release Repository</name> 
      <url>http://repo.bumnetworks.com/releases/</url> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>scala-tools.org</id> 
      <name>Scala-Tools Maven2 Repository</name> 
      <url>http://scala-tools.org/repo-releases</url> 
     </pluginRepository> 
    </pluginRepositories> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.4</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.specs</groupId> 
      <artifactId>specs</artifactId> 
      <version>1.2.5</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.novus</groupId> 
      <artifactId>casbah_2.8.0</artifactId> 
      <version>1.0.8.5</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <sourceDirectory>src/main/scala</sourceDirectory> 
     <testSourceDirectory>src/test/scala</testSourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.scala-tools</groupId> 
       <artifactId>maven-scala-plugin</artifactId> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>testCompile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <scalaVersion>${scala.version}</scalaVersion> 
        <args> 
         <arg>-target:jvm-1.5</arg> 
        </args> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <configuration> 
        <downloadSources>true</downloadSources> 
        <buildcommands> 
         <buildcommand>ch.epfl.lamp.sdt.core.scalabuilder</buildcommand> 
        </buildcommands> 
        <additionalProjectnatures> 
         <projectnature>ch.epfl.lamp.sdt.core.scalanature</projectnature> 
        </additionalProjectnatures> 
        <classpathContainers> 
         <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer> 
         <classpathContainer>ch.epfl.lamp.sdt.launching.SCALA_CONTAINER</classpathContainer> 
        </classpathContainers> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <reporting> 
     <plugins> 
      <plugin> 
       <groupId>org.scala-tools</groupId> 
       <artifactId>maven-scala-plugin</artifactId> 
       <configuration> 
        <scalaVersion>${scala.version}</scalaVersion> 
       </configuration> 
      </plugin> 
     </plugins> 
    </reporting> 
    <name>TradeGrouper</name> 
</project> 

私はそううまくいけば、それはかなり難しいコマンドラインからシンプルなアプリを実行すると、とても複雑になる可能性があることを信じるように見つけますよ誰かが私にパスを表示することができます...

おかげで、 ジョン

答えて

1

あなたのMavenプロジェクトを実行するには2つの方法があります。まず、あなたは、単にこのようなexcec:java -taskを使用することができます:あなたはjavaコマンドに渡された任意の特定の引数を必要としない場合

mvn exec:java -Dexec.mainClass=com.acme.Main 

これが正常に動作します。

ます。また exec:execタスクを使用することができますが、それは、Mavenをすることによって評価されるよう、あなたは %classpathを拡張してはならない

mvn exec:exec -Dexec.args="-classpath %classpath com.acme.Main" \ 
    -Dexec.executable="java" 

あなたのプロジェクトは、このjavaのように実行している場合は、あなたのコースの$PATHかでなければなりませんexec.executableでフルパスを指定する必要があります。

また、pom.xmlconfigure the exec-maven-pluginでもコマンドラインでプロパティ定義を省略することができます。

+0

ありがとうございました。私はまだ私がたくさんのことを学ぶことがたくさんあると思います... – jxstanford

関連する問題