首页 > 解决方案 > 使用提取的 java 源代码与 maven 一起编译

问题描述

我正在使用 maven-dependency-plugin 从一个大 jar 中提取一些类并将它们添加到我的项目类中。对,不,有 2 个 jar,每个构建都有一个分类器:源和帮助器。源 jar 包含所有 java 文件。助手 jar 具有完全依赖的大多数类(没有 java 文件的类)。

由于我需要缺少的类,我想将所有 java 文件从“sources”-classifier-jar 提取到 target/extracted/src,而不是将类从“helper”-classifier-jar 提取到 target/classes,然后编译它们。由于我的项目依赖于已编译的类,因此我在生成源阶段运行依赖插件。

有人知道我如何实现这一目标吗?我究竟做错了什么?我尝试使用编译器插件添加源目录(将是依赖插件的输出目录),但我无法构建项目。它没有找到课程。

<plugin>
  <artifactId>mave-dependency-plugin>
  <executions>
    <execution>
      <configuration>
        <artifactItems>
          <artifactItem>
            <gropuId>...</groupId>
            <artifactId>...</artifactId>
            <version>1.0</version>
            <includes>
              com/acme/Bar.java
            </includes>
            <overWrite>false</overWrite>
            <type>jar</type>
          </artifactItem>
       </artifactItems>
       <outputDirectory>${project.build.directory}/extracted/src</outputDirectory>
      </configuration>
      <goals>
        <goal>unpack</goal>
      </goals>
      <id>unpack</id>
      <phase>generate-sources</phase>
    </execution>
  </executions>
</plugin>      
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>3.2.0</version>
  <executions>
     <execution>
     <id>add-source</id>
     <phase>generate-sources</phase>
     <goals>
        <goal>add-source</goal>
     </goals>
     <configuration>
       <sources>
        <source>${project.build.directory}/extracted/src</source>
       </sources>
     </configuration>
   </execution>
  </executions>
</plugin>

在我的项目java类的某个地方,我引用了 Bar.class 例如

import com.acme.Bar;

我将不胜感激任何有用的提示。

标签: javamavenmaven-dependency-pluginbuild-helper-maven-plugin

解决方案


推荐阅读