maven-jar-plugin
该插件可以把程序打成一个可运行的jar包.该插件有两个插件目标:jar:jar
插件目标、jar:test-jar
插件目标.
jar:jar插件目标
用于从当前项目构建一个JAR.该插件绑定到了package生命周期阶段.
必选元素
<classesDirectory>
包含应打包到JAR中的类和资源文件的目录.不显示指定则使用默认值:${project.build.outputDirectory}
property的值<outputDirectory>
指定生成jar的目录.不显示指定则使用默认值:${project.build.directory}
property的值.
可选元素
<archive>
要使用的打包配置.<classifier>
要添加到生成的工件的classifier
.如果给定,工件将作为补充工件附加.如果没有给出,将创建作为默认行为的主工件.<includes>
要包含的文件列表.<exclude>
要排除的文件序列.<forceCreation>
要求该插件构建一个新的JAR包,即使内容似乎没有任何变化.从3.0.0开始,该属性已从jar.forceCreation重命名为maven.jar.forceCreation.<outpputTimestamp>
可重复输出存档项的时间戳.<skipIfEmpty>
跳过创建空存档,默认为false.
jar:test-jar插件目标
用于从当前项目构建一个JAR.该插件绑定到了package生命周期阶段.
必选元素
<testClassesDirectory>
包含应打包到JAR中的类和资源文件的目录.不显示指定则使用默认值:${project.build.testOutputDirectory}
property的值<outputDirectory>
指定生成jar的目录.不显示指定则使用默认值:${project.build.directory}
property的值.
可选元素
同jar:jar
Maven Archiver
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<!-- 创建的归档文件是否包含以下pom.xml 和pom.properties Maven 文件,默认是true -->
<addMavenDescriptor/>
<!-- 是否对存档进行压缩。默认值为 true -->
<compress/>
<!-- 是否强制重新创建存档。
将此选项设置为 false(默认值为 true)意味着将所包含文件的时间戳与目标存档的时间戳进行比较,并重建存档,
前提是后者的时间戳小于前者的时间戳。检查时间戳通常会带来性能提升
(特别是,如果构建中的以下步骤被抑制,如果没有重新创建归档文件),
代价是您会不时得到不准确的结果。特别是,不会检测到源文件的删除。
归档程序不一定支持检查最新版本。如果是这样,将此选项设置为 true 将被忽略。-->
<forced/>
<!-- 创建的存档文件是否包含 INDEX.LIST 文件。默认值为 false -->
<index/>
<!-- 使用此选项覆盖自动创建的 pom.properties 文件(仅当 addMavenDescriptor 设置为 true 时) -->
<pomPropertiesFile/>
<!-- 提供自己的清单文件 -->
<manifestFile/>
<!-- -->
<manifest>
<!-- 是否创建 Class-Path 清单条目。默认值为 false-->
<addClasspath/>
<!-- 如果为true,清单将包含以下条目:
Created-By: Maven Archiver ${maven-archiver.version}
Build-Jdk-Spec: ${java.specification.version}
-->
<addDefaultEntries/>
<!-- 如果为true,清单将包含以下条目:
Implementation-Title: ${project.name}
Implementation-Version: ${project.version}
Implementation-Vendor: ${project.organization.name}
-->
<addDefaultImplementationEntries/>
<!-- 如果为true,清单将包含以下条目:
Specification-Title: ${project.name}
Specification-Version: ${project.artifact.selectedVersion.majorVersion}.${project.artifact.selectedVersion.minorVersion}
Specification-Vendor: ${project.organization.name}
-->
<addDefaultSpecificationEntries/>
<!-- 如果为true,清单将包含以下条目:
Build-Tool: ${maven.build.version}
Build-Jdk: ${java.version} (${java.vendor})
Build-Os: ${os.name} (${os.version}; (${os.arch})
-->
<addBuildEnvironmentEntries/>
<!-- 是否创建 Extension-List 清单条目。默认值为 false -->
<addExtensions/>
<!-- 在所创建的 Class-Path 中格式化条目时要使用的布局类型。
有效值包括:simple、repository(与Maven类路径布局相同)和 custom。
注意:如果指定 custom 的类型,还必须设置 customClasspathLayout。默认值为 simple
-->
<classpathLayoutType/>
<!-- 将作为所有 Class-Path 项前缀的文本。默认值为空字符串 “”-->
<classpathPrefix/>
<!-- 在 classpathLayoutType 中设置的布局类型值为 custom 时使用的布局表达式。表达式将根据类路径相关对象的以下有序列表进行计算:
当前 Artifact 实例(如果存在)。
来自上述 Artifact 的当前 ArtifactHandler 实例。
注意:如果指定 custom 布局类型,则必须设置该布局表达式
-->
<customClasspathLayout/>
<!-- Main-Class 清单项-->
<mainClass/>
<!-- 名为 Package 清单条目-->
<packageName/>
<!-- 是否使用唯一的时间戳快照版本而不是 -SNAPSHOT。默认值为 true-->
<useUniqueVersions/>
</manifest>
<!-- 要添加到清单的键/值对的列表 -->
<manifestEntries>
<key>value</key>
</manifestEntries>
<manifestSections>
<manifestSection>
<!-- 节的名称-->
<name/>
<!-- 要添加到清单的键/值对的列表。java.util.Map 类型-->
<manifestEntries>
<key>value</key>
</manifestEntries>
</manifestSection>
</manifestSections>
</archive>
</configuration>
</plugin>
整理来自于Maven-jar-plugin.