您可以指定 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>


