java - 如何在 Maven 中构建项目时执行已编译的 jar

标签 java maven

我正在开发一个库,我需要在编译之前自动生成一个.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 也可以)。

谢谢。

最佳答案

我想您混淆了 exec:exec 的参数目标(产生外部进程) exec:java (它只是在 Mavens VM 中执行一些 Java 类)。

(因此,对于您的示例, <executable>java</executable> 将被忽略(因此不会调用 java.exe),并且显然您的类本身不知道如何解析类路径。

因此,将提供 city_enum_builder.jar 的项目添加为 exec-maven-plugin 的依赖项它应该可以工作。

别忘了检查http://mojo.codehaus.org/exec-maven-plugin/java-mojo.html了解更多详情。

关于java - 如何在 Maven 中构建项目时执行已编译的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754735/

相关文章:

java - 使用智能卡在我的 Java 表单中输入 UserID

java - Jedis不会删除key

java - 动态 Web 模块 3.0 需要 java 1.6 或更高版本

java - Maven 的 Jersey 问题 - Shade 插件

java - 如何使用 XPAGES DesignerFacesServlet 显示泰语字母(以及另一个亚洲/阿拉伯字母)

java - 如何从运行在服务器外部(Web 应用程序)的 Spring hibernate 项目中使用 JBoss AS7 JNDI 数据源?

javascript - 在浏览器中从 selenium 构建器运行 Mocha 测试

java - 如何识别并构建 2007 年以来的 JBoss java 应用程序?

spring - java.lang.ClassNotFoundException : org. springframework.web.servlet.DispatcherServlet

maven - 尝试访问我的 WEB-INF 目录下的 .jsp 文件时出现 404 错误,我不明白为什么