我试图将某些类排除在阴影jar中。 我尝试了几种不同的配置,但出于某种原因,jar子仍然包含在我的jar子里。 这是插件设置: org.apache.maven.plugins maven-shade-plugin 2.4.2 package shade *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA java/* 我也尝试了以下模式: java.* java.util.concurrent.ConcurrentHashMap java/util/concurrent/ConcurrentHashMap 其中没有一个实际上从我的jar中排除了该文件。 如何从我的jar中排除这个类?
使用OpenSAML 3时,必须首先使用以下代码行从opensaml-saml-impl工件加载组件: InitializationService.initialize(); 这使用java.util.ServiceLoader来加载任何实现Initializer类型 。 当我编写测试并使用mvn integration-test运行它时,这很好用,我可以看到所有内容都已加载: Assert.assertTrue( XMLObjectProviderRegistrySupport .getUnmarshallerFactory() .getUnmarshallers() .size() > 400); 但是,我的项目使用maven-shade-plugin 。 如果我将代码打包到超级jar中,则上述条件不正确: mvn package java -jar /path/to/my.jar 在这种情况下,我观察到只有9个unmarshallers已经加载(那些在opensaml-core ,而不是那些在opensaml-saml-impl 。但是,当我观察mvn package的输出时,我可以看到类型包含在阴影jar: [INFO] Including org.opensaml:opensaml-saml-impl:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-profile-api:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-messaging-api:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-saml-api:jar:3.2.0 in the shaded jar. [INFO] […]
我正在使用maven-shade-plugin进行简单的maven项目,该插件成功地将所有依赖项包含在最终的“阴影”jar中。 这个过程每次都很有效,并且完全符合我的需要。 当运行“第一”时间( clean )时,插件很安静并且产生很少的输出。 但是,当重新运行时(没有从上一次构建中clean ),有很多警告消息,例如; [WARNING] We have a duplicate package/a/b/foo.class [WARNING] We have a duplicate package/c/d/bar.class 这只是警告消息,最终的工件工作正常。 我的问题很简单:如何在不必先运行clean情况下安全地解决或抑制这些警告消息? 注意:一个可能的解决方案是转移到maven-assembly-plugin ,但我不愿意,因为maven-shade-plugin的配置非常简单。
我使用shade maven插件来构建我的项目,以便它的所有依赖项都包含在一个jar中(这使得在Hadoop上运行它更容易)。 Shade似乎默认排除了我的测试代码,这是可以理解的。 由于我想对我的集群运行集成测试,我希望设置另一个配置文件来为此目的构建一个单独的jar。 有没有办法配置这个插件还包括测试代码?
我正在尝试构建一个与HBase通信的Dropwizard (Jersey)REST端点。 虽然这些是我唯一的两个顶级依赖项,但这两个依赖项都加载了许多冲突的传递依赖项。 这种冲突的一个简单例子是谷歌的番石榴: HBase客户端指定版本11 Dropwizard指定18 Dropwizard不适用于版本11,HBase不适用于版本18。 我已经检查了Maven shade插件文档,但它似乎没有让你重新定位依赖jar中的类。 所以我不知道如何解决这个问题,而不是将这两个组件分成单独的JVM。
大家! 我一直试图使用Maven Shade插件获取jar,但我仍然没有获得成功:( 这是我的项目结构: MainModule -Module1 -src -pom.xml -Module2 -src -pom.xml -pom.xml Module1(pom.xml): MainModule com.plugintest 1.0-SNAPSHOT 4.0.0 Module1 Module2(pom.xml): MainModule com.plugintest 1.0-SNAPSHOT 4.0.0 Module1 MainModule(pom.xml): com.plugintest MainModule pom 1.0-SNAPSHOT Module1 Module2 org.apache.maven.plugins maven-shade-plugin 2.2 package shade 根据这段代码,我得到2个jar文件(Module1-version.jar和Module2-version.jar)。 但这不是我想要的。 我希望获得1个jar文件(MainModule-version.jar),其中包含另一个(Module1和Module2)。 请告诉我,为什么这个Shade插件不起作用?
我有一个项目可以正常使用maven托管依赖项。 但我要求将我的jar文件作为一个。 为此,我使用maven-shade插件( http://maven.apache.org/plugins/maven-shade-plugin/ )。 所有类文件都正确导出但是当我尝试运行我的应用程序时,我得到一个错误: 可以找到内容类型multipart / form-data类型的writer:org.jboss.reasteasy.plugins.provider.multipart.MultipartFormDataOutput 任何帮助都会很棒,谢谢。 注意:我遇到类似spring的问题,其主要原因是配置文件。 许多jar文件包含具有相同名称的configuraiton文件。 所有配置文件都尝试覆盖其他配置文件。 将该文件与maven-shade配置合并后问题得以解决。
我正在使用maven-shade-plugin构建我的项目,Netbeans 8.0抱怨以下警告: Project的主要工件通过maven-shade-plugin处理 当最终工件jar包含不是源自当前项目的类时,NetBeans内部编译器不能使用项目源进行编译。 然后,在重新编译项目时,项目源代码中所做的更改仅出现在依赖项目中。 也适用于重构等function,无法在依赖项目中找到用法。 我怎样才能解决这个问题? 它能破坏什么?
我有一个巨大的JAR文件,我用Maven Shade插件创建。 我用java -jar foo.jar运行它,我的UI打开了。 现在我想执行*.exe文件,该文件也在该JAR文件中,我该怎么做? 我尝试将exe放到我的类路径并从那里运行它,但在尝试后我发现classpath实际上是我的JAR所在的位置。 有什么建议么? 在这里找到了这个东西,但这真的是最好的解决方案吗? 好像很多工作,我想我在这里有不同的情况,因为我可以自己定义exe的位置,JAR是由我创建的。 运行包装在jar中的exe 为什么我需要这个? 我想给用户一个文件可执行文件,他可以运行,但我的程序使用* .exe。 我应该把exe放在我的jar旁边,并且会有2个文件或者有我的要求的解决方案吗?
我有应用程序,当我从maven log4j2运行时它正在工作: mvn exec:java -Dexec.args=… 但是当我将jar作为独立应用程序运行时,它会显示错误: java -jar 日志: ERROR StatusLogger Unrecognized format specifier [d] ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern. ERROR StatusLogger Unrecognized format specifier [thread] ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern. ERROR StatusLogger Unrecognized format specifier [level] ERROR StatusLogger […]