我在构建中使用了两个maven插件,其中一个为另一个准备文件。具体来说,我使用maven-assembly-plugin来构建jar文件,然后使用jdeb来创建debian包。我的问题是,一旦第二个(jdeb)启用,第一个(maven-assembly-plugin)就永远不会运行。
我的pom.xml
就在这里:https://gist.github.com/knyttl/fa956d56b15bc2849d60
谢谢!
编辑:
我也尝试使用个人资料:https://gist.github.com/knyttl/dd43a7e7df87c406b823
但是在调用时它不会按预期工作:mvn package -Passembly,debian
。我是否总是要写-P
参数?有没有办法定义要运行的“默认配置文件”?我想只调用mvn package
来运行两个配置文件。
答案 0 :(得分:2)
程序集插件未配置execution
。向程序集插件添加执行,类似于以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>jarlib.xml</descriptor>
</descriptors>
<outputDirectory>assembly</outputDirectory>
<workDirectory>target/assembly/work</workDirectory>
<appendAssemblyId>false</appendAssemblyId>
<finalName>...</finalName>
<attach>false</attach>
<archive>
<manifest>
<mainClass>...</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>do-assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
此外,如果要在jdeb之前执行程序集插件,请确保在jdeb之前的POM中定义程序集插件。 As of Maven 3.0.3,定义为在同一阶段执行的插件将使用POM的顺序(在此顺序是任意的之前)。
除非您希望在某些情况下能够禁用插件的执行,否则无需使用配置文件。
答案 1 :(得分:1)
我建议制作个人资料。由于他们可能都在使用包阶段,因此只会调用一个。使用配置文件,您可以将它们分开。