我正在使用 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;
我将不胜感激任何有用的提示。