java – Maven exec插件ClassNotFoundException

前端之家收集整理的这篇文章主要介绍了java – Maven exec插件ClassNotFoundException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Maven exec插件从命令行运行 java应用程序,命令为mvn exec:java.我已经在pom.xml中指定了主类以及相关的依赖项. @H_301_2@<groupId>com.example.MyApp</groupId> <artifactId>MyApp</artifactId> <version>1.0.0</version> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.example.myclass</mainClass> <arguments> <argument>configFile</argument> <argument>properties</argument> </arguments> </configuration> </plugin>

我还指定了一些依赖…

@H_301_2@<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> <type>jar</type> </dependency> <dependency> <groupId>com.example.MyLibrary</groupId> <artifactId>MyLibrary</artifactId> <version>1.0.0</version> </dependency>

MyApp程序读取一个配置文件,该文件作为命令行参数传入.配置文件包含位于MyLibrary中的类的名称.所以该类可以是com.mypackage.driver.MyClass,它位于MyLibrary中,它是上面列出的MyApp jar的依赖项.
但是,当我尝试运行它时,我得到一个ClassNotFoundException …

—-更新
我正在使用系统类加载器来加载在MyApp程序的命令行中传入的类

@H_301_2@ClassLoader loader = ClassLoader.getSystemClassLoader();

我认为这是导致问题,因为它正在寻找默认类路径上不包含依赖项的类.

我在这里做错了什么提示

解决方法

你还在寻找这个问题的答案吗?我有完全相同的问题,最后想出来了.

您需要在配置中添加includePluginDependencies,以使插件搜索主类的依赖项:

@H_301_2@<configuration> <includePluginDependencies>true</includePluginDependencies> <mainClass>com.example.myclass</mainClass> <arguments> <argument>configFile</argument> <argument>properties</argument> </arguments> </configuration>

见:http://mojo.codehaus.org/exec-maven-plugin/java-mojo.html#includePluginDependencies

原文链接:https://www.f2er.com/java/126519.html

猜你在找的Java相关文章