我在Unable to locate NamespaceHandler when using context:annotation-config
运行(java -jar)一个由maven-assembly-plugin
组装的jar并包含我的项目及其所有依赖项的错误。
当其他人正确地注意到了forum.springsource.org
线程(消息#7/8)时,就会出现问题,因为文件META-INF/spring.handlers
和META-INF/spring.schemas
存在于不同jar中的文件在maven-assembly-plugin将jar重新打包为单个文件时会被覆盖。
查看两个spring-*。jar
文件的内容,你可以看到这些文件相对于类路径位于相同的位置
$ jar tf spring-oxm-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/oxm/GenericMarshaller.class
...
$ jar tf spring-context-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
是否可以将META-INF文件夹放在特定的包装中?如果是这样,我建议(希望适用)是将META-INF/spring.shemas
和META-INF/spring.handlers
文件放在它们所引用的包下。
$ jar tf spring-oxm-3.0.3.RELEASE.jar
org/springframework/oxm/META-INF/spring.schemas
org/springframework/oxm/META-INF/spring.handlers
org/springframework/oxm/GenericMarshaller.class
...
$ jar tf spring-context-3.0.3.RELEASE.jar
org/springframework/context/META-INF/spring.handlers
org/springframework/context/META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
这样,它们合并到单个jar中时不会发生冲突。你怎么看待这件事?
我设法使用shader插件而不是(buggy)汇编器插件摆脱了这个错误:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>at.seresunit.lecturemanager_connector.App</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
我想我在springsource论坛上找到了解决方案..自从我查了很久以来..我真的不记得作者了。无论如何都对他表示敬意:p
问题内容: 堆垛机。我一直在网站上搜索我的问题,但没有找到我想要的东西。我坚持下面的代码: 得到了一个不错的数组列表,但是如果我在ArrayList中添加更多“ newUsers”,它们似乎会相互覆盖。我不想创建一个newUser1,newUser2对象,因为稍后在我的程序中,我必须能够直接从该程序添加新用户。 如何实现呢? ValidateUser: } 问题答案: 如果我理解正确,那么您是以这
问题内容: 我的应用程序需要多个jar才能工作。由于它是桌面应用程序,因此我无法让用户负责安装。因此,在我的构建脚本中,我将jar内容解压缩到我的构建目录中,删除清单文件,编译我的软件,然后再次对其进行jar。一切正常,因为我的问题是此过程是否有长期副作用? 问题答案: 过去,JAR的内容很奇怪(例如包含和的DB2驱动程序;在Windows文件系统中解压缩后,这两个软件包将合并在一起)。 您需要了
问题内容: 我有一个具有多个主类的maven项目。我想从这些项目中生成可运行的Jar(包括所有依赖项)。我目前有以下构建配置(使用maven.assembly): 他们是否可以通过Maven-assembly实现这一目标?如果没有,实现目标的最简单方法是什么? 问题答案: 我无法以令人满意的方式解决此问题,因此我选择了其他解决方案。我使用了:
我最终得到一个编译错误:
**新到分级 我有一个需求,需要使用一个现有的spring boot项目(它安装在本地maven存储库中)作为另一个项目(spring boot gradle项目)中的依赖项。 使用mavenLocal我能够成功地运行和构建gradle项目,但是当我试图使用其他项目中存在的任何类时,我就无法导入它。 我如何使用这个分级项目中的maven项目?
问题内容: 在其中,您可以选择覆盖依赖项,并使其指向其他存储库,例如在以下https://github.com/kubermatic/glog- logrus 库中,您需要在Gopkg.toml文件中添加以下几行: 然后在代码库中。但是,在go模块中,我看不到这样的选择吗?这使我认为唯一的解决方案是将import更改为。 谢谢! 问题答案: 这就是指令的目的。 引用Wiki Go 1.11模块:我