ライブラリを開発しており、コンパイルする前に .java ファイルを自動的に生成する必要があります。を見つけmaven-exec-plugin
、このように構成しました
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>generate-city-enum</id>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<executable>java</executable>
<mainClass>org.codeforamerica.open311.city_enum_builder.EnumBuilder</mainClass>
<arguments>
<argument>-jar</argument>
<argument>city_enum_builder.jar</argument>
<argument>cities.json</argument>
<arguments>output.java</arguments>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
問題は、実行mvn -e compile
すると次のエラーが発生することです。
java.lang.ClassNotFoundException: org.codeforamerica.open311.city_enum_builder.EnumBuilder
ただし、これはメイン クラスであり、実際に実行するjava -cp .:city_enum_builder.jar org.codeforamerica.open311.city_enum_builder.EnumBuilder cities.json output.java
と機能します。
さらに、この .jar を実行するためにクラスを指定する必要はありません (java -jar city_enum_builder.jar cities.json output.java
同様に機能します)。
ありがとうございました。