如何自动处理多个“目标”?

问题描述 投票:0回答:1

我使用

package
让 Maven 生成目标 JAR 文件,并使用
dependency:build-classpath
生成
cp.txt
列出所有依赖 JAR,我不想将其捆绑到目标 JAR 中:

mvn package dependency:build-classpath

有没有一种方法可以让类路径构建与打包一起自动发生——而无需我在命令行上明确请求两者?

maven maven-plugin maven-lifecycle
1个回答
0
投票

下面的命令执行maven

build-classpath
插件的
dependency
目标:

mvn dependency:build-classpath

但是当你执行

mvn package
时,你实际上指示maven从所有阶段传递,直到
package
阶段,在默认生命周期
package
阶段所属)。当 Maven 通过这些阶段时,它会执行所有附加的插件目标。

Maven 默认情况下不会将

dependency:build-classpath
目标附加到任何阶段(尽管根据打包类型它会附加一些其他目标)。您需要显式地执行此操作,只需向
pom.xml
声明插件目标(还提供相应的配置):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
        <execution>
            <goals>
                <goal>build-classpath</goal>
            </goals>
            <configuration>
                <outputFile>cp.txt</outputFile>
            </configuration>
        </execution>
    </executions>
</plugin>

Maven 然后会将上述目标附加到

generate-sources
阶段(这是 目标的默认阶段),当该阶段到来时,
dependency:build-classpath
插件目标将执行。

结论:

问:如何自动处理多个“目标”?

A:您将这些目标声明为

pom.xml
(并可选择覆盖要附加到的默认阶段),当 Maven 从该阶段传递时,作为 maven 生命周期的一部分,它们将自动执行。

© www.soinside.com 2019 - 2024. All rights reserved.