您可以指定finalName属性以为jar提供所需的名称,并指定appendAssemblyId为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>
更新:根据您的评论,使用内置描述符将不起作用。我认为这归结于最新版本的Assembly-Plug中的一个错误-他们已经删除了对分类器的支持,但是如果您使用内置描述符,则ID是固定的,因此您会以一个笨拙的名字结尾。
解决方法是,您可以复制jar-with-dependencies描述符使用的程序集描述符并修改id。
此示例将导致程序集ID附加到finalName,因此,如果您需要使用名称region-full.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>