我的项目包含几个必须集成到最终jar文件中的类。
所以我现在的“工作流程”看起来像是:
mvn compile && jar uf contribution.jar -C target/classes .
我想这可以通过maven-jar插件或通过maven-assembly完成,但无法弄清楚如何。
答案 0 :(得分:2)
简单 - 将元素<packaging>jar</packaging>
添加到pom.xml
并调用以下内容:
mvn package
有关详细信息,请参阅Maven build lifecycle。如果你计划在你的项目中使用Maven,那真的是必读的。
修改强>
感谢您的更新,我知道您的意思。可能有更好的方法来做到这一点,但这就是我使用的方法:
如果你以通常的方式将它作为依赖项添加,Maven会自动包含这个jar,即:
<dependencies>
...
<dependency>
<groupId>some.group</groupId>
<artifactId>contribution</artifactId>
<version>1.0.0</version>
</dependency>
...
</dependencies>
问题是如何确保maven能找到罐子?如果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添加到此仓库。为此,请执行mvn deploy:deploy-file
命令并为其指定适当的值。有关详细信息,请参阅here。
现在,在构建/编译/打包原始项目时,它应该在包装中包含contrib.jar,因为它是依赖项。
希望这会有所帮助:)