私はmaven execプラグインを使用して、コマンドラインからmvn exec:javaというjavaアプリケーションを実行しています。私はpom.xmlと関連する依存関係のメインクラスを指定しました。Maven execプラグインClassNotFoundException
<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>
私も依存関係の数を指定します...
<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
となります。これは上記のMyApp
jarの依存関係であるMyLibrary
にあります。私はこれを実行しようとすると は、しかし、私は取得ClassNotFoundException
...
更新----私はMyApp
プログラムのコマンドラインに渡されたクラスをロードするためにシステムのクラスローダを使用してい
ClassLoader loader = ClassLoader.getSystemClassLoader();
私は、依存関係が含まれていないデフォルトのクラスパス上のクラスを探しているので、これが問題を引き起こしていると考えています。
ここで間違っていることに関するヒントはありますか?
私は同じ問題があり、includePluginDependenciesを追加しましたが、まだClassNotFoundExceptionです。その他の提案はありますか? –