maven - 使用 mvn exec:java 运行时的 ClassNotFoundExeption
问题描述
希望运行一个基本的控制台应用程序maven
:
nicholas@mordor:~/NetBeansProjects/mavenchimp$
nicholas@mordor:~/NetBeansProjects/mavenchimp$ mvn clean exec:java
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< tech.saundersconsulting:mavenchimp >-----------------
[INFO] Building mavenchimp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mavenchimp ---
[INFO]
[INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ mavenchimp ---
[WARNING]
java.lang.ClassNotFoundException: tech.mavenchimp.App
at java.net.URLClassLoader.findClass (URLClassLoader.java:471)
at java.lang.ClassLoader.loadClass (ClassLoader.java:589)
at java.lang.ClassLoader.loadClass (ClassLoader.java:522)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:246)
at java.lang.Thread.run (Thread.java:834)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.465 s
[INFO] Finished at: 2020-12-06T08:06:26-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:java (default-cli) on project mavenchimp: An exception occured while executing the Java class. tech.mavenchimp.App -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
目录树
nicholas@mordor:~/NetBeansProjects/mavenchimp$ tree
.
├── pom.xml
└── src
├── main
│ └── java
│ └── tech
│ └── mavenchimp
│ ├── App.java
│ └── Chimp.java
└── test
└── java
7 directories, 3 files
绒球
nicholas@mordor:~/NetBeansProjects/mavenchimp$ cat pom.xml
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>tech.saundersconsulting</groupId>
<artifactId>mavenchimp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<exec.mainClass>tech.mavenchimp.App</exec.mainClass>
</properties>
</project>
编码
nicholas@mordor:~/NetBeansProjects/mavenchimp$ cat src/main/java/tech/mavenchimp/App.java
package tech.mavenchimp;
import java.util.logging.Logger;
public class App {
private static final Logger log = Logger.getLogger(App.class.getName());
private void runApp() {
log.info("running..");
Chimp chimp = new Chimp();
chimp.connect();
}
public static void main(String[] args) {
new App().runApp();
}
}
nicholas@mordor:~/NetBeansProjects/mavenchimp$
pom.xml
生成的地方Netbeans
,我只是添加了以下行:
<exec.mainClass>tech.mavenchimp.App</exec.mainClass>
为了能够exec
使用maven
.
maven
与-e
开关一起运行给出:
Caused by: java.lang.ClassNotFoundException: tech.mavenchimp.App
该类是如何指定超出上述设置的pom.xml
?
解决方案
解决方案:
nicholas@mordor:~/NetBeansProjects/mavenchimp$
nicholas@mordor:~/NetBeansProjects/mavenchimp$ mvn clean compile exec:java
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< tech.saundersconsulting:mavenchimp >-----------------
[INFO] Building mavenchimp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mavenchimp ---
[INFO] Deleting /home/nicholas/NetBeansProjects/mavenchimp/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenchimp ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/nicholas/NetBeansProjects/mavenchimp/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mavenchimp ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/nicholas/NetBeansProjects/mavenchimp/target/classes
[INFO]
[INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ mavenchimp ---
Dec 06, 2020 8:17:54 AM tech.mavenchimp.App runApp
INFO: running..
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.739 s
[INFO] Finished at: 2020-12-06T08:17:54-08:00
[INFO] ------------------------------------------------------------------------
nicholas@mordor:~/NetBeansProjects/mavenchimp$
不会exec
依赖compile
?
推荐阅读
- python - 如何将参数传递给具有不同接口的重写函数?
- batch-file - 检查网络驱动器是否存在的批处理脚本,如果存在,则不执行任何操作,如果不存在 - 映射路径
- tfs - 如何从封闭审查中获得搁置集
- ios - IPA 应用程序:未安装捆绑包
- sql - 如何编写一个插入 SQL 语句,循环遍历对象数组中的每条记录并相应地插入记录的特定列?
- django - { % include tag %} 仅包含来自另一个模板的一个对象
- hl7 - 仅将新添加的文件从一个文件夹复制到另一个文件夹,而不从源文件夹移动现有文件
- c++ - 如何使用(lambda)函数填充 C++ 容器?
- angular - 从 Angular 4 迁移到 Angular 6 后,仅在部署时出错
- android - Firestore 日志记录如何工作?