我已经使用maven很多年了,并且遇到了一个奇怪的错误,这让我想到了这个奇怪的问题: 为什么
mvn clean install
与 mvn clean package install
不一样?
它在文档中说,当您调用 the install phase
时,所有 previous required phases
都会被调用。
这是我的示例,它只是一个
pom.xml
文件(因此除了这个文件之外不需要其他任何东西来重现问题)
mvn clean install
--> 成功mvn clean package install
--> 失败(任务jar:3.3.0:jar (default-jar)
第二次执行...)<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mdr-wiremock-shaded</artifactId>
<version>1.0.1</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8-standalone</artifactId>
<version>2.31.0</version>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<phase>package</phase>
<configuration>
<relocations>
<relocation>
<pattern>org.slf4j</pattern>
<shadedPattern>shaded.org.slf4j</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
尽管文档中没有明确指定,但实际上多次调用目标似乎是“正常”的......