gpt4 book ai didi

java - mvn 执行 :java on aggregate pom

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:58:38 27 4
gpt4 key购买 nike

有谁知道是否可以在 mvn aggregate 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 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>

我要执行的类 (codadris.coviob2.App_Coviob2) 在模块 codadris.dbgui 中

有什么想法吗?
TIA
抱歉,格式可能不太正确。我在换行方面遇到了一些问题。

最佳答案

根据Exec Maven Plugin Documentation关于 exec:java:

Executes the supplied java class in the current VM with the enclosing project's dependencies as classpath.

在这里,您显示的聚合 pom 不包含对 codadris.dbgui 模块的任何依赖(这实际上是件好事,不要添加它!),因此 java.lang.ClassNotFoundException

要避免此 java.lang.ClassNotFoundException,第一个选项是从另一个答案中指出的包含 Java 类的模块运行 exec:java 目标.但这不是您要的。

幸运的是,还有另一种选择 - 使用插件依赖项 - 在 Using Plugin Dependencies Instead of Project Dependencies 中有记录:

Ocassionally it is desirable to execute a Java class without affecting your project's dependencies. For example, if you are using the Maven csharp plugins, adding Java dependencies to your project will upset the csharp compiler. Therefore the Exec Maven Plugin allows you specify dependencies of your executable class as plugin dependencies. Since Maven takes plugin dependencies into consideration when determining build order for a multi-module project your build order should automatically be appropriately adjusted (I think).

[...]

这应该是诀窍。有关 exec-maven-plugin 配置和使用插件依赖项的示例 POM 配置的更多详细信息,请参阅上面给出的链接。

PS: 我在这里有点困惑,因为 exec:java 提示找不到 pom.xml (" Cannot execute mojo: java. It需要一个具有现有 pom.xml 的项目,但构建未使用一个。")。也许只是跟踪不准确,但这让我怀疑父 pom 位置。

PPS:PS 不再适用,OP 已经用正确的轨迹更新了问题。

关于java - mvn 执行 :java on aggregate pom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com