1

我的项目包含几个必须集成到最终 jar 文件中的类。

所以我目前的“工作流程”看起来像:

mvn compile && jar uf contribution.jar -C target/classes .

我想这可以通过 maven-jar 插件或通过 maven-assemblies 来完成,但无法弄清楚如何。

4

1 回答 1

2

简单 - 将元素添加<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,因为它是一个依赖项。

希望这可以帮助 :)

于 2013-05-17T13:42:13.870 回答