有一个非常奇怪的构建与maven-shade-plugin:2.4.3在一个标准的maven项目中.执行maven package命令时,总是无法找到mainClass异常.我只是模拟一个maven-shade-plugin示例,见下文:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.mkyong.core.utils
dateUtils
jar
1.0-SNAPSHOT
dateUtils
http://maven.apache.org
1.7
2.5
4.11
junit
junit
${junit.version}
test
joda-time
joda-time
${jodatime.version}
dateutils
src/main/resources
org.apache.maven.plugins
maven-eclipse-plugin
2.9
true
false
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
${jdk.version}
${jdk.version}
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
true
jar-with-dependencies
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
com.mkyong.core.utils.App
这个可以成功.然后只需更改主类名称,其他如下:
org.apache.maven.plugins
maven-shade-plugin
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
xxxxxxx
关于插件行的父pom.xml文件:
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
true
jar-with-dependencies
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
所以模块将扩展父类,但是当它抛出异常时,表示:
[错误]无法执行目标org.apache.maven.plugins:maven-shade-plugin:2.4.3:项目分析的阴影(默认)-sdk-storm-local:无法解析mojo org.apache.maven的配置.plugins:maven-shade-plugin:2.4.3:参数mainClass的阴影:在类org.apache.maven.plugins.shade.resource.AppendingTransformer中找不到’mainClass’ – > [帮助1]
但为什么会发生.有maven依赖树显示:
[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ xxxxx ---
[INFO] local:jar:1.0.1-SNAPSHOT
[INFO] +- org.apache.kafka:kafka_2.10:jar:0.8.1.1:compile
[INFO] | +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] | +- org.xerial.snappy:snappy-java:jar:1.1.2:compile
[INFO] | +- net.sf.jopt-simple:jopt-simple:jar:3.2:compile
[INFO] | +- org.scala-lang:scala-library:jar:2.10.1:compile
[INFO] | \- com.101tec:zkclient:jar:0.3:compile
[INFO] +- org.apache.storm:storm-core:jar:0.9.3:provided
[INFO] | +- org.clojure:clojure:jar:1.5.1:provided
[INFO] | +- clj-time:clj-time:jar:0.4.1:provided
[INFO] | +- joda-time:joda-time:jar:2.8.2:provided
[INFO] | +- compojure:compojure:jar:1.1.3:provided
[INFO] | +- org.clojure:core.incubator:jar:0.1.0:provided
[INFO] | +- org.clojure:tools.macro:jar:0.1.0:provided
[INFO] | +- clout:clout:jar:1.0.1:provided
[INFO] | +- ring:ring-core:jar:1.1.5:provided
[INFO] | +- commons-fileupload:commons-fileupload:jar:1.3.1:provided
[INFO] | +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] | +- hiccup:hiccup:jar:0.3.6:provided
[INFO] | +- ring:ring-devel:jar:0.3.11:provided
[INFO] | +- clj-stacktrace:clj-stacktrace:jar:0.2.2:provided
[INFO] | +- ring:ring-jetty-adapter:jar:0.3.11:provided
[INFO] | +- ring:ring-servlet:jar:0.3.11:provided
[INFO] | +- org.mortbay.jetty:jetty:jar:6.1.26:provided
[INFO] | +- org.mortbay.jetty:jetty-util:jar:6.1.26:provided
[INFO] | +- org.clojure:tools.logging:jar:0.2.3:provided
[INFO] | +- org.clojure:math.numeric-tower:jar:0.0.1:provided
[INFO] | +- org.clojure:tools.cli:jar:0.2.4:provided
[INFO] | +- commons-io:commons-io:jar:2.4:provided
[INFO] | +- org.apache.commons:commons-exec:jar:1.1:provided
[INFO] | +- commons-lang:commons-lang:jar:2.5:provided
[INFO] | +- com.googlecode.json-simple:json-simple:jar:1.1.1:provided
[INFO] | | \- junit:junit:jar:4.12:provided
[INFO] | | \- org.hamcrest:hamcrest-core:jar:1.3:provided
[INFO] | +- com.twitter:carbonite:jar:1.4.0:provided
[INFO] | +- com.esotericsoftware.kryo:kryo:jar:2.21:provided
[INFO] | +- com.esotericsoftware.reflectasm:reflectasm:jar:shaded:1.07:provided
[INFO] | +- org.ow2.asm:asm:jar:4.0:compile
[INFO] | +- com.esotericsoftware.minlog:minlog:jar:1.2:provided
[INFO] | +- org.objenesis:objenesis:jar:1.2:compile
[INFO] | +- com.twitter:chill-java:jar:0.3.5:provided
[INFO] | +- org.yaml:snakeyaml:jar:1.16:provided
[INFO] | +- commons-logging:commons-logging:jar:1.1.3:provided
[INFO] | +- commons-codec:commons-codec:jar:1.9:provided
[INFO] | +- com.googlecode.disruptor:disruptor:jar:2.10.1:provided
[INFO] | +- org.jgrapht:jgrapht-core:jar:0.9.0:provided
[INFO] | +- ch.qos.logback:logback-classic:jar:1.1.5:provided
[INFO] | +- ch.qos.logback:logback-core:jar:1.0.13:provided
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.12:compile
[INFO] | +- org.slf4j:log4j-over-slf4j:jar:1.7.16:provided
[INFO] | \- jline:jline:jar:2.11:compile
[INFO] +- org.apache.storm:storm-kafka:jar:0.9.3:compile
[INFO] | \- org.apache.curator:curator-framework:jar:2.5.0:compile
[INFO] | +- org.apache.curator:curator-client:jar:2.5.0:compile
[INFO] | +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] | | \- io.netty:netty:jar:3.7.0.Final:compile
[INFO] | \- com.google.guava:guava:jar:19.0:compile
[INFO] +- so.sao.analytics:analytics-sdk-common:jar:1.0.1-SNAPSHOT:compile
[INFO] | +- com.esotericsoftware:kryo:jar:3.0.3:compile
[INFO] | | +- com.esotericsoftware:reflectasm:jar:1.10.1:compile
[INFO] | | \- com.esotericsoftware:minlog:jar:1.3.0:compile
[INFO] | \- org.mapdb:mapdb:jar:2.0-beta12:compile
[INFO] \- so.sao.analytics:analytics-sdk-storm-common:jar:1.0.1-SNAPSHOT:compile
我真的不知道为什么失败了.现在只需注释代码.你见过这个,给我看,谢谢.