【发布时间】:2016-03-06 10:02:42
【问题描述】:
我的问题是 maven-shade-plugin 似乎在我的项目上运行了两次。
我的 parent-pom 文件在这里:http://pastebin.com/EsYaCbzJ(在这里发布太长了)
给我带来麻烦的项目(好吧,在这种情况下是模块)的 pom 在这里:http://pastebin.com/jdyGXGpL
我正在尝试在 MySQL jdbc 驱动程序中隐藏。
这是我希望使用的 pom.xml 中的块。
<build>
....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>mysql</pattern>
<shadedPattern>mysql.shaded</shadedPattern>
</relocation>
</relocations>
<artifactSet>
<excludes>
<exclude>com.fakeneth.mydynamicsql:mydynamicsql-core</exclude>
<exclude>junit:junit</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
...
</build>
现在,当我尝试构建项目时,会出现(或似乎会出现)问题。我使用与 pom.xml 中所见的没有什么不同来构建它。
由于某种原因,以下几行显示了两次,彼此稍晚一点;
[INFO] --- maven-shade-plugin:2.4.3:shade (默认) @ mydynamicsql-standalone ---
[INFO] 从阴影 jar 中排除 com.fakeneth.mydynamicsql:mysql-core:jar:0.0.1-SNAPSHOT。
[INFO] 在阴影 jar 中包含 mysql:mysql-connector-java:jar:5.1.38。
[INFO] 附加着色伪影。
下面一行也连续显示两次;
[INFO] Installing C:\Users\cneth_000\Documents\EclipseWorkspace\mydynamicsql-parent\mydynamicsql-standalone\target\mydynamicsql-standalone-0.0.1-SNAPSHOT-shaded.jar to C:\Users\cneth_000\.m2\repository\com\fakeneth\mydynamicsql\mydynamicsql-standalone\0.0.1-SNAPSHOT\mydynamicsql-standalone-0.0.1-SNAPSHOT-shaded.jar
这是构建此项目时打印的完整日志:http://pastebin.com/L3RQaUvv
这是预期的行为吗?谢谢
【问题讨论】:
-
maven-jar-plugin 运行了两次,它看起来配置错误,因为它产生了一个没有版本的工件,我假设还有其他配置。
-
@khmarbaise 我不知道这是否是问题所在。当我添加的只是
<packaging>jar</packaging>时,我怎么会错误地配置它? -
可能基于父pom?
-
@khmarbaise 除了“pom”包装风格之外,父 pom 没有任何不同。那和编译器插件完全不同
-
请出示完整的 pom 而不仅仅是摘录,否则无法提供帮助