2010-11-26 5 views
0

Netbeans 6.9.1에 기존의 pom을 사용하여 가져온 "간단한 스칼라 프로젝트 (1.2)"아키타 입을 기반으로하는 스칼라 프로젝트가 있습니다. 내가 성공적으로 Netbeans 내부 에서이 프로젝트를 실행할 수 있지만 명령 줄에서 그것을 실행하는 방법을 알아낼 수 없습니다. 몇 가지 유사한 질문을 보았지만 문제를 성공적으로 적용 할 수 없었습니다. 그것은 IDE에서 실행하면Netbeans 실행 Maven 스칼라 응용 프로그램을 명령 줄에서 실행

, 실행 명령은 다음과 같습니다

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 

클래스 패스 위를 포함 프로젝트의 빌드 된 클래스와 scala 라이브러리가있는 폴더. 내가 다른 것을 놓치고 있는지 확실하지 않습니다. 결과는 다음과 같습니다 그래서 희망,

<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> 

내가 명령 줄에서 간단한 응용 프로그램을 실행하는 것은 매우 복잡 할 수 있다고 생각하는 꽤 하드를 찾는거야 : 여기

[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 파일입니다 누군가가 나에게 경로를 표시 할 수 있습니다 ...

감사합니다, 존

답변

1

메이븐 프로젝트를 실행하는 두 가지 방법이 있습니다. 먼저 간단하게이 같은 excec:java -task을 사용할 수 있습니다 : 당신이 java 명령에 전달 특정 인수가 필요하지 않은 경우

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

이 잘 작동합니다.

또한 exec:exec 작업을 사용할 수 있지만 그것은 메이븐에 의해 평가 될 때 당신은 %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

관련 문제