mvn exec:聚合pom上的java
有人知道是否可以在mvn聚合POM上运行mvn exec:java吗 目前我得到:mvn exec:聚合pom上的java,java,maven-2,module,aggregate,Java,Maven 2,Module,Aggregate,有人知道是否可以在mvn聚合POM上运行mvn exec:java吗 目前我得到: 2009-09-24 02:24:14.404 :bash: karolrvn@karolrvn-laptop : ~/adfadf/programming/verknowsys/codadris/ide_projects $ mvn exec:java -e -Dexec.mainClass=codadris.coviob2.App_Coviob2 + Error stacktraces are turned
2009-09-24 02:24:14.404 :bash: karolrvn@karolrvn-laptop : ~/adfadf/programming/verknowsys/codadris/ide_projects $ mvn exec:java -e -Dexec.mainClass=codadris.coviob2.App_Coviob2
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] net.jcip.annotations
[INFO] codadris.utils
[INFO] codadris.binblocklang
[INFO] jargs
[INFO] codadris.dbapp
[INFO] codadris.dbgui.scala
[INFO] flexdock_codadris
[INFO] codadris.gui.utils
[INFO] codadris.gui
[INFO] codadris.gui.treetable
[INFO] codadris.gui.textedit
[INFO] codadris.gui.screenspace
[INFO] codadris.gui.suite
[INFO] codadris.dbgui
[INFO] All Codadris modules aggregate POM
[INFO] Searching repository for plugin with prefix: 'exec'.
[INFO] ------------------------------------------------------------------------
[INFO] Building net.jcip.annotations
[INFO] task-segment: [exec:java]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing exec:java
[INFO] No goals needed for project - skipping
[INFO] [exec:java]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] An exception occured while executing the Java class. codadris.coviob2.App_Coviob2
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: An exception occured while executing the Java class. codadris.coviob2.App_Coviob2
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:512)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:482)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: An exception occured while executing the Java class. codadris.coviob2.App_Coviob2
at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:345)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
... 16 more
Caused by: java.lang.ClassNotFoundException: codadris.coviob2.App_Coviob2
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:283)
at java.lang.Thread.run(Thread.java:619)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Thu Sep 24 02:24:17 CEST 2009
[INFO] Final Memory: 4M/94M
[INFO] ------------------------------------------------------------------------
2009-09-24 02:24:17.917 :bash: karolrvn@karolrvn-laptop : ~/adfadf/programming/verknowsys/codadris/ide_projects $
POM:
<?xml version="1.0" encoding="UTF-8"?>
<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>codadris</groupId>
<artifactId>codadris</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>All Codadris modules aggregate POM</name>
<url>http://maven.apache.org</url>
<modules>
<module>codadris.binblocklang</module>
<module>codadris.dbapp</module>
<module>codadris.dbgui</module>
<!-- <module>codadris.dbgui.scala</module> -->
<module>codadris.gui</module>
<!--<module>codadris.gui.scala</module>-->
<module>codadris.gui.screenspace</module>
<module>codadris.gui.suite</module>
<module>codadris.gui.textedit</module>
<module>codadris.gui.treetable</module>
<module>codadris.gui.utils</module>
<module>codadris.utils</module>
<!-- <module>ekit_codadris</module>-->
<module>flexdock_codadris</module>
<module>jargs</module>
<module>net.jcip.annotations</module>
<module>codadris.dbgui.scala</module>
</modules>
<!-- 2009-08-27 06:04:10 ; karolrvn ; http://stackoverflow.com/questions/1274523/maven-surefire-reporting-plugin-configuration -->
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<!-- <version>2.4.2</version> -->
<configuration>
<aggregate>true</aggregate>
<!--also set this to link to generated source reports-->
<linkXRef>true</linkXRef>
</configuration>
</plugin>
</plugins>
</reporting>
</project>
4.0.0
科达德里斯
科达德里斯
聚甲醛
0.0.1-快照
所有Codadris模块聚合POM
http://maven.apache.org
宾朗科达德里斯酒店
codadris.dbapp
codadris.dbgui
codadris.gui
codadris.gui.screenspace
codadris.gui.suite
codadris.gui.textedit
codadris.gui.treetable
codadris.gui.utils
乌司他丁
flexdock_codadris
罐子
net.jcip.annotations
codadris.dbgui.scala
org.apache.maven.plugins
maven surefire报告插件
真的
真的
我要执行的类(codadris.coviob2.App_coviob2)位于模块codadris.dbgui中
有什么想法吗?TIA
很抱歉,格式可能不太正确。我在使用换行符时遇到了一些问题。我建议您将
cd
转到相关类所在的模块,并在那里运行exec:java
。exec:java
表示它“在当前VM中执行提供的java类,并将封闭项目的依赖项作为类路径”。因此,即使您没有出现上面列出的错误,它仍然会失败,因为它将使用父POM的依赖项(没有任何依赖项)而不是子POM的依赖项。错误堆栈跟踪有点奇怪,但这通常是典型的(不幸的)当插件的使用方式不是设计用来工作的。根据aboutexec:java
:
在当前VM中执行提供的java类,并将封闭项目的依赖项作为类路径
在这里,您显示的聚合pom不包含对codadris.dbgui
模块的任何依赖关系(这实际上是件好事,不要添加它!),因此出现了java.lang.ClassNotFoundException
为了避免这个java.lang.ClassNotFoundException
,第一个选项是从包含java类的模块运行exec:java
目标,如另一个答案中所指出的。但这不是你想要的
幸运的是,还有另一个选项-使用插件依赖项-记录在:
通常,执行Java类时不影响项目的依赖关系是可取的。例如,如果您使用的是Maven csharp插件,那么向项目中添加Java依赖项将打乱csharp编译器。因此,execmaven插件允许您将可执行类的依赖项指定为插件依赖项。由于Maven在确定多模块项目的构建顺序时考虑了插件依赖关系,所以您的构建顺序应该自动进行适当调整(我认为)
[……]
这应该是关键。有关execmaven插件配置和使用插件依赖项的示例POM配置的更多详细信息,请参阅上面给出的链接
PS:我有点困惑,因为exec:java
抱怨找不到pom.xml(“无法执行mojo:java。它需要一个具有现有pom.xml的项目,但构建没有使用它。
”)。也许只是跟踪不准确,但这让我怀疑父pom的位置
PPS:PS不再适用,OP用正确的跟踪更新了问题。对不起,我粘贴了错误的控制台转储,这是在错误的目录中执行的结果。真正的错误是java.lang.ClassNotFoundException:codadris.coviob2.App_coviob2; OK,这似乎更准确、更符合逻辑。我曾经尝试过类似的问题,但每当我添加插件依赖项时,它都会向依赖项图添加一个循环。