Syn*_*nox 16 maven-2 assemblies jar
我使用程序集插件创建了几个包含一些类的jar.我需要生成的罐子的自定义名称:app_business.jar app_gui.jar core.jar等.
目前我必须遵循以下配置:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>app_business</finalName>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
一个assembly.xml文件:
<assembly>
<id>app_business</id>
<formats>
<format>jar</format>
</formats>
<baseDirectory>target</baseDirectory>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>org/xyz/**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)
这会创建一个完美的文件app_business.jar.但我不知道如何创建我的其他文件.选项appendAssemblyId对我没有帮助,因为它以AppName-app_business.jar格式创建文件名.我真的需要确切的文件名app_business.jar.
任何的想法?非常感谢你!
Ric*_*ler 39
您可以将配置元素移动到插件声明的执行元素下面.这意味着配置将仅应用于该执行.然后,您可以为其他程序集添加程序集插件的其他执行.
以下是具有两个执行的修改配置的示例,每个执行引用不同的程序集:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-business-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>app_business</finalName>
<descriptors>
<descriptor>src/main/assembly/business-assembly.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
<execution>
<id>make-gui-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>app_gui</finalName>
<descriptors>
<descriptor>src/main/assembly/gui-assembly.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
使用此配置,将在目标目录中创建另外两个jar(app _business.jar和app _gui.jar),但要注意,如果安装项目,则只会安装最后组装的工件(这当然可以是问题).
要避免这种情况,您需要将appendAssemblyId属性更改为true.在这种情况下,您可以获得的最接近的是将finalNames更改为"app",将ID更改为"gui"和"business",从而打包app-gui.jar和app-business.jar并安装所有工件.
Aar*_*lla -2
标准 Maven 插件适用于一般的重复性工作。它们从 POM 收集所有信息,并且它们很聪明(从某种意义上说,您不需要进行太多配置)。
如果您需要特殊任务,那么我建议使用ant 插件,它允许您在 POM 中嵌入一段 Ant 代码。这允许您运行jar 任务。