1

我在构建中使用了两个 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为了运行两个配置文件。

4

2 回答 2

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 中定义了程序集插件。 从 Maven 3.0.3开始,定义为在同一阶段执行的插件将使用 POM 的顺序(在此顺序之前是任意的)。

除非您希望能够在某些情况下禁用插件的执行,否则无需使用配置文件。

于 2013-07-21T13:14:45.770 回答
1

我建议制作个人资料。由于它们可能都在使用包阶段,因此只有一个会被调用。使用配置文件,您可以将它们分开。

于 2013-07-21T11:09:40.227 回答