我需要从一个maven项目中创建多个程序集,每个程序集都可以满足特定的国家/地区的要求,并且可以打包特定国家/地区风格的从属jar(请称其为dependent- {country} .jar)。
例如: 美国:发布的程序集名称将为“ service-usa-jar-with-dependencies.jar”,这将打包“ dependent-usa.jar”并排除从属jar的所有其他样式。
我要解决的方法是为每个国家/地区创建多个程序集描述符,并在每个描述符中排除依赖罐子的所有其他样式。
美国的组装描述符样本:
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>us-jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
<excludes>
<exclude>groupID:dependent-emeia</exclude>
<exclude>groupID:dependent-austrailia</exclude>
<exclude>groupID:dependent-china</exclude>
...
</excludes>
</dependencySet>
</dependencySets>
但这有问题。如果我们要扩展到一个新的国家并获得另一个依赖的jar,我将不得不从所有现有的程序集描述符中排除这个新的jar。
我想知道是否有更好的方法可以通过Maven构建来实现这一目标。