Java 如何将结果程序集重命名为已安装在.m2中
我有一个多模块项目。其中一个模块是assembly,它具有将核心(库)和示例放在一个zip中的描述符Java 如何将结果程序集重命名为已安装在.m2中,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我有一个多模块项目。其中一个模块是assembly,它具有将核心(库)和示例放在一个zip中的描述符 <assembly> <id>assembly</id> <formats> <format>zip</format> <format>dir</format> </formats> <includeBaseDirectory>false</include
<assembly>
<id>assembly</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<useTransitiveDependencies>false</useTransitiveDependencies>
<outputDirectory>/</outputDirectory>
</dependencySet>
</dependencySets>
在.m2存储库中发布的名称始终是
${module.artifactId}-${module.version}.${module.extension}
,即使设置了finalName
,包也会在target
文件夹中正确重命名
我找到了两种方法来改变这一点:
id
:
在assembly/resources.xml中
->
=所需的后缀(例如myappid
)
在pom.xml maven assembly plugin build部分中,将appendAssemblyId
设置为true
结果将是:
- 目标文件夹中的文件名=
${artifactId}-${version}-${assemblyId}.zip
- .m2 repo文件夹中的文件=与目标文件夹中的文件相同
你可能想再看看。这是由汇编插件的
设置控制的,默认情况下为true
。因此zip存档应该在您的存储库中。设置为true没有帮助,我可以在目标中看到zip,但它不在repo中。显示maven执行的日志文件。[INFO]构建zip:/home/dmitry/mbus/trunk/assembly/target/my-project.zip[警告]配置选项:“appendAssemblyId”设置为false,而“classifier”缺失。它将成为主项目工件的文件,而不是附加汇编文件:/home/dmitry/mbus/trunk/assembly/target/my-project.zip。注意:如果为该项目提供了多个描述符或描述符格式,则该文件的值将是不确定的![信息]处理DependencySet(output=/)您不鼓励人们通过发布此类评论来帮助您。
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>package-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>my-project</finalName>
<appendAssemblyId>false</appendAssemblyId>
[INFO] Building Assebly
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory /home/dmitry/mbus/trunk/assembly/target
[INFO] [site:attach-descriptor {execution: default-attach-descriptor}]
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[INFO] No goals needed for project - skipping
[INFO] [source:jar {execution: default}]
[INFO] [assembly:single {execution: package-assembly}]
[INFO] Reading assembly descriptor: assembly.xml
[INFO] Processing DependencySet (output=/)
[WARNING] Cannot include project artifact: com.comcast.xcal.mbus:assembly:pom:CCP-LATEST-SNAPSHOT; it doesn't have an associated file or directory.
[INFO] Building zip: /home/dmitry/mbus/trunk/assembly/target/my-project.zip
[WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing.
Instead of attaching the assembly file: /home/dmitry/mbus/trunk/assembly/target/my-project.zip, it will become the file for main project artifact.
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-deterministic!
[INFO] Processing DependencySet (output=/)
[INFO] Copying files to /home/dmitry/mbus/trunk/assembly/target/my-project.dir
[WARNING] Assembly file: /home/dmitry/mbus/trunk/assembly/target/my-project.dir is not a regular file (it may be a directory). It cannot be attached to the project build for installation or deployment.
[INFO] [install:install {execution: default-install}]
[INFO] Installing /home/dmitry/mbus/trunk/assembly/pom.xml to /home/dmitry/.m2/repository/com/mbus/assembly/CCP-LATEST-SNAPSHOT/assembly-CCP-LATEST-SNAPSHOT.pom
[INFO] [javadoc:jar {execution: default}]
[INFO] Not executing Javadoc as the project is not a Java classpath-capable package
[INFO]
[INFO]