在将值替换为文件之前,Maven中是否有一种方法可以转换属性的值,例如通过简单的String.replace()调用?
我试图创建一个包含特定目录结构的maven依赖项的程序集。特别是,我想将每个工件放入映射到其groupId的目录结构中。换句话说,如果我有工件org.example.app:library1:jar
,我想将其放入目录org/example/app/library1.jar
。
我尝试创建一个Assembly描述符,将依赖的工件放入一个子目录中,但是我已经达到了无法将groupId(带点符号)转换为路径的程度。下面是我正在使用的程序集文件的dependencySet部分。
<dependencySets>
<dependencySet>
<outputFileNameMapping>${artifact.groupId}/${artifact.artifactId}/${artifact.version}/${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<outputDirectory>.</outputDirectory>
<unpack>false</unpack>
<useTransitiveDependencies>true</useTransitiveDependencies>
<useTransitiveFiltering>false</useTransitiveFiltering>
<useProjectArtifact>false</useProjectArtifact>
</dependencySet>
</dependencySets>
P.S。我还调查了Assembly插件的存储库模式,但它包含了太多信息(例如SHA1和MD5哈希,以及Maven POM文件)。
答案 0 :(得分:0)
汇编描述符文件由程序集插件使用,并且它本身没有嵌入Maven属性的机制,例如$ {my.property}。但是,作为一种解决方法,您可以使用maven资源插件“过滤”程序集描述符文件(当它从一个地方复制到另一个地方时)。这样可以实现您正在寻找的替代品。
然后你会让Maven程序集插件使用过滤后的描述符文件。