java - 使用提取的 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;
我将不胜感激任何有用的提示。
解决方案
推荐阅读
- objective-c - 非法矢量组件名称“x”(金属)
- django - 值错误 Django CSV
- python - Django:ManyToManyField 在我的模板上显示为空
- python - docker-compose --build 找不到 python 可执行文件,但 docker run 可以
- asp.net-core - 使用主机名而不是 IP 地址和端口号访问同一网络上远程计算机上的 IIS 站点
- amazon-web-services - 防止 aws 帐户按需使用
- vue.js - 如何将选项传递给自定义 vue 组件?
- html - 我怎样才能使盒子扩大?
- python - 使用文本文档更改列表中的项目
- sql-server - 使用文本文件批量插入创建表