我有一个我希望在多个项目中使用的Maven程序集。如何在不对路径进行硬编码的情况下重用它?
答案 0 :(得分:2)
使用最新版本的程序集插件(2.2-beta-2),您可以使用[共享描述符] [1]。在单独项目的 src / main / resources / assemblies 文件夹中定义描述符,然后安装或部署它。
在想要使用描述符的项目中,在程序集插件配置中定义描述符项目的依赖项,然后引用程序集。
更新:有一个特殊规则可以检查程序集目录。因此,只要您使用魔术程序集目录名,/assemblies / myassembly.xml或只是/myassembly.xml都可以正常工作。对于其他目录名称,需要相对于资源目录的完整路径。
我错误地警告引用文档中存在错误,并且引用路径需要与src / main资源下面的相对路径匹配,即assemblies / myassembly.xml 不程序集。 XML。
使用共享描述符的项目应具有以下配置:
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-2</version>
<!--declare plugin has a dependency on the descriptor project -->
<dependencies>
<dependency>
<groupId>your.group.id</groupId>
<artifactId>my-assembly-descriptor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!-- This is where we use our shared assembly descriptor -->
<descriptors>
<descriptor>assemblies/myassembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>