【发布时间】:2019-03-19 11:01:57
【问题描述】:
这个项目是一个库,一个我正在开发的框架,将通过 mavenrepository.com 以 jar 文件的形式分发。
我在page 的 1. 简介下读到了这篇文章。
maven jar 插件提供了构建 jars 文件的功能,如果 你定义你的项目被打包成一个jar文件,maven会 隐式调用此插件。我们不需要在里面定义它 pom.xml 会在maven需要的时候下载执行。
问题是如何将项目本身定义为 pom.xml 中的 jar。
默认情况下,我只想在 jar 中包含 src/main/java 文件。 src/test/java 不需要在 jar 中。
【问题讨论】:
-
你不应该做任何事情,因为构建 jars 是 Maven 的默认设置。请注意
src/main/java中的源代码不会直接添加到jar 中,而是先编译,然后将编译后的类添加到jar 中。如果您想显式设置包装(它定义了工件的捆绑方式),您可以将<packaging>jar</packaging>添加到您的 pom.xml(在“顶级”,即作为<project ...>元素的直接子元素)。 -
当我在 IntelliJ 中运行测试但在任何地方都没有 jar 文件时,我在目标文件夹下得到了一堆
.class文件。 pom.xml 中是否有一个配置指定在project-dir/bin/Library.jar下创建工件,之前我曾经在 IntelliJ 中定义它,但理想情况下我认为它应该在pom.xml -
Maven 默认会在目标文件夹中创建jar。但是,这取决于实际的生命周期阶段是否已执行——IntelliJ 可能不会触发它,或者至少不总是触发它(如果 Maven 在您的路径上,请在命令行尝试
mvn package或mvn install)。这是一个关于 maven 及其生命周期的问题有很多答案(也有一些不错的图像):stackoverflow.com/questions/26607834/… -
我已经安装了
mvn,添加到路径中,运行mvn package,我确实在目标文件夹下看到了.jar 文件。 pom.xml 中是否有一些构建自动化可以将其放置在 bin 文件夹下以及自定义名称? -
当然可以通过一些配置来实现(参见stackoverflow.com/questions/6689511/… 和stackoverflow.com/questions/4238944/…)。但是,在许多情况下,这不是必需的,并且可能需要额外的配置来进一步构建步骤。为什么要/需要更改名称和输出位置?