您可以指定最终名称属性为 jar 指定您想要的名称,并指定附加程序集 ID应该为 false 以避免“jar-with-dependencies”后缀。
下面的配置将输出一个名为“test.jar”的jar
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<executions>
<execution>
<id>jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>test</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
更新:根据您的评论,使用内置描述符将不起作用。我相信这是由于最新版本的程序集插件中的一个错误 - 他们删除了对分类器的支持,但如果您使用内置描述符,则 id 是固定的,因此您最终会得到一个大而愚蠢的名称。
作为解决方法,您可以复制所使用的程序集描述符带有依赖项的 jar http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies描述符并修改id。
此示例将导致程序集 id 被附加到 FinalName,因此如果您需要名称为区域完整.jar,您可以将 FinalName 指定为region程序集 ID 为full。这将在目标中生成一个名为region-full.jar的文件,但请注意,它仍然会作为附加工件安装到Maven存储库中full用作分类器。只要此 id 与其他程序集的 id 不同,就不应该发生冲突。
pom 配置看起来像这样。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<executions>
<execution>
<id>jar-with-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/jar-assembly.xml</descriptor>
</descriptors>
<finalName>region</finalName>
</configuration>
</execution>
</executions>
</plugin>
src/main/ assembly 中的 jar- assembly.xml 如下所示:
<assembly>
<id>full</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>true</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
</fileSet>
</fileSets>
</assembly>