我目前正在使用带有依赖项的jar程序集来创建这样的jar。但是,我的jar的名称有点长。
由于这个jar是由AS400上的RPG程序使用的,所以我想缩短它,以使这些开发人员的工作更轻松一些。但是,除了手动之外,我还没有找到将jar从通常的project-name-version-classifier-jar-with-dependencies.jar
重命名的方法。我想要像project-name-version-classifier-full.jar
这样的东西
有没有办法做到这一点,而不是简单地复制具有依赖关系的jar程序集描述符并调用它?
此外,我希望继续将没有组装类路径的jar存储在存储库中。
我需要两件藏品。用我的分类器保存构建所针对的区域的jar。包含所有依赖项的jar,其中还包括区域。
project-name-version-region-full.jar
和project-name-version-region.jar
应该存储在存储库中。在第一个例子中,分类器是region-full,在第二个例子中,分类器是region。后者正在发挥作用。
发布于 2013-01-20 02:19:53
我想我已经找到了一种方法,可以直接在pom中配置它,而不需要单独的jar-assembly.xml y.xml。
它基本上与Rich的答案相同,只是finalName是用artifactId和版本指定的。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${project.artifactId}-${project.version}-full</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.mycompany.MyMainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependenciess</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
发布于 2011-03-08 14:10:49
多亏了这里的帖子和对maven docs的深入研究,我已经为一个通用的一次性重新打包的可执行jar程序集提供了以下配置,并使用了一个自定义名称。
在pom.xml中:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>exe</id>
<phase>package</phase>
<goals><goal>single</goal></goals>
<configuration>
<finalName>MyJarName</finalName>
<attach>false</attach>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>karlthepagain.MyMain</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
在assembly.xml中:
<assembly>
<id>exe</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
这将生成MyJarName.jar
,并将其所有依赖项重新打包到相同的jar和指定的Main-Class: karlthepagain.MyMain
中。
发布于 2019-07-01 18:49:51
也可以使用${project.build.finalName}
作为最终名称来覆盖原始jar文件:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${project.build.finalName}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
https://stackoverflow.com/questions/1334999
复制相似问题