我的项目包含几个必须集成到最终 jar 文件中的类。
所以我目前的“工作流程”看起来像:
mvn compile && jar uf contribution.jar -C target/classes .
我想这可以通过 maven-jar 插件或通过 maven-assemblies 来完成,但无法弄清楚如何。
我的项目包含几个必须集成到最终 jar 文件中的类。
所以我目前的“工作流程”看起来像:
mvn compile && jar uf contribution.jar -C target/classes .
我想这可以通过 maven-jar 插件或通过 maven-assemblies 来完成,但无法弄清楚如何。
简单 - 将元素添加<packaging>jar</packaging>
到您的pom.xml
并调用以下内容:
mvn package
有关更多信息,请参阅Maven 构建生命周期。如果您打算在项目中使用 Maven,这确实是必读的。
编辑
感谢您的更新,我知道您的意思。可能有更好的方法来做到这一点,但这是我使用的:
如果您以通常的方式将其添加为依赖项,Maven 将自动包含此 jar,即:
<dependencies>
...
<dependency>
<groupId>some.group</groupId>
<artifactId>contribution</artifactId>
<version>1.0.0</version>
</dependency>
...
</dependencies>
问题是如何保证maven能找到jar?如果 jar 在 Maven Global 存储库中,它会自动找到它,所以请务必先检查。如果没有,那么您将必须创建自己的存储库来存储自定义 jar。这可能不是最聪明的方法,但我就是这样做的。请注意,这与存储在文件夹中的缓存不同。.m2
假设我们想使用 c:\maven\repo 作为我们的本地。为此,首先确保该文件夹存在,然后将以下行添加到您的pom.xml
:
<repositories>
<repository>
<id>my-repo</id>
<url>file://c:\maven\repo</url>
</repository>
</repositories>
接下来,您将需要手动将贡献 jar 添加到此 repo。为此,请执行mvn deploy:deploy-file
命令并为其赋予适当的值。请参阅此处了解更多信息。
现在,当构建/编译/打包您的原始项目时,它应该在打包中包含contribution.jar,因为它是一个依赖项。
希望这可以帮助 :)