6

我是 Maven 新手,在通过 Maven 运行类文件时遇到问题

它运行良好
mvn exec:java -Dexec.mainClass="com.test.Test"

但不适用于
mvn exec:exec -Dexec.executable=java -Dexec.mainClass="com.test.Test"

它要求提供 java 参数

F:\data\work\Test>mvn exec:exec -Dexec.executable=java -Dexec.mainClass="com.test.Test"
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -server       to select the "server" VM
    -hotspot      is a synonym for the "server" VM  [deprecated]
                  The default VM is server.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.

我已经提供了一个类文件,那为什么它不能选择呢?我什至通过 pom 尝试提供这些。

我正在使用 exec:exec 因为我不想从MAVEN_OPTS传递 VM 参数

这是我的pom

<profiles>  
 <profile>  
  <id>fib</id>  
  <build>  
   <plugins>  
    <plugin>  
     <groupId>org.codehaus.mojo</groupId>  
     <artifactId>exec-maven-plugin</artifactId>  
     <version>1.3.2</version>  
     <executions>  
      <execution>  
       <phase>test</phase>  
       <goals>  
        <goal>exec</goal>  
       </goals>  
       <configuration>  
        <mainClass>com.test.Test</mainClass>  
        <executable>java</executable> 
       </configuration>  
      </execution>  
     </executions>  
    </plugin>  
   </plugins>  
  </build>  
 </profile>  
</profiles>

我错过了什么?

所以出现了 2 个问题 -
1)尽管传递了 mainClass,但它要求我传递 java 参数,我错过了什么?
2)如何使用 exec-maven-plugin 传递 VM 参数?

我使用带有参数的 maven 'exec:exec'为我的第二个问题找到了这个

4

1 回答 1

6
mvn exec:exec -Dexec.executable=java -Dexec.args="-classpath target/classes -XX:+PrintGCDetails com.test.Test"

另外,如果您担心依赖项位于类路径中,请制作一个胖罐并将其设置在类路径中

有趣的讨论:https ://chat.stackoverflow.com/rooms/67085/discussion-between-biker-and-jigar-joshi

于 2014-12-17T06:57:31.510 回答