Tag: maven

Jboss在根上下文中部署

是的,我知道enable-welcome-root=false ,但是无法在文件中找到它。 使用wildfly final或jboss eap 6.2。 在哪儿? 为什么我需要在WEB-INF中添加jboss-web.xml?

Maven:通过属性访问传递依赖的版本

在Maven项目中,我的一个直接依赖项具有间接依赖性com.foo:bar。 我需要的是Maven属性(例如${bar-version} ),其中包含此工件的版本号。 我需要这种机制来处理几个间接依赖项的版本号。 我从那个问题中了解到,我可以在antrun插件中使用${maven.dependency.com.foo.bar.jar.path}访问工件jar的本地路径。 我现在使用的解决方法是在antrun执行中解析它的值(例如/path/to/repository/com/foo/bar/2.1.1/bar-2.1.1.jar )并在那里定义一个属性(配置exportAntProperties是我的朋友)。 但是,由于默认情况下ant没有良好的字符串正则表达式操作,这非常麻烦。 是否有其他属性如${maven.dependency.com.foo.bar.jar.path} ? 我尝试了${maven.dependency.com.foo.bar.jar.version} ,但它没有用。 我还想了解这个属性背后的机制。 它是由Java类支持的吗? 就像project.organization.name是相应的Maven类中的getProject().getOrganizarion().getName() … 欢迎任何帮助! 谢谢,约翰内斯

使用spring数据存储库和mongo db设置spring应用程序

在application-context.xml中定义mongo存储库时,我遇到了一个问题 以下是我在xml中得到的错误 Error occured processing XML tried to access method org.springframework.context.annotation.AnnotationConfigUtils.processCommonDefinitionAnnotations (Lorg/springframework/beans/factory/annotation/AnnotatedBeanDefinition;)V from class org.springframework.data.repository.config.RepositoryComponentProvider’. See Error Log for more details servlet-context.xml /master/WebContent/WEB-INF/config line 24 Spring Beans Problem 我附上了env的截图供参考。 我正在使用eclipse Kepler版本和pom属性File就是这样的 1.7 4.0.1.RELEASE 2.3.0 1.4.0.RELEASE Spring数据公共版本是1.7 spring数据mongo db 1.4版。 当我打开上下文xml时,我在eclipse项目中看到了错误。 有趣的是,我有另一个项目运作良好。唯一的区别是它没有弹簧MVC和jackson二进制文件,否则它的类似项目。 exception堆栈跟踪: !ENTRY org.springframework.ide.eclipse.beans.core 1 0 2014-03-01 00:04:11.839!MESSAGEerror handling’/master/WebContent/WEB-INF/config/servlet-context.xml’!STACK 0 java.lang.IllegalAccessError:尝试从类org.springframework.data.repository.config.RepositoryComponentProvider访问方法org.springframework.context.annotation.AnnotationConfigUtils.processCommonDefinitionAnnotations(Lorg / springframework / beans […]

Log4j2自定义插件 – 使用Maven Assembly Plugin进行注释处理

我对Maven不太熟悉,我昨天开始使用它,但我喜欢它。 在我的项目中,我使用Log4j2库进行日志记录,由于高级插件(如appender,转换器)的不足, 我需要使用自定义插件 。 log4j-api和log4j-core (还有一堆其他库)作为依赖项添加到与我的项目关联的pom.xml中。 实际上我使用的是Log4j的2.0版本。 Log4j使用注释处理来预加载标记为@Plugin类。 据我所知,在较早版本的log4j中,必须在pom.xml中指定其他插件条目才能触发插件处理,或者必须在配置文件中的packages属性中键入包含自定义插件的packages ( https:/ /logging.apache.org/log4j/2.x/manual/configuration.html#ConfigurationSyntax )。 但是自2.0-rc2以来,这不受支持。 在v2.0中,只要log4j-core可用于构建引擎,就应该自动完成。 myproject-0.0.1-SNAPSHOT.jar / META-INF / org / apache / logging / log4j / core / config / plugins /中有一个文件Log4j2Plugins.dat ,它包含我的自定义插件的映射 – 没关系。 对于使用Maven进行构建,我还使用了Maven Assembly Plugin 。 它的目标single是捆绑到package阶段。 打包项目后,我自然在目标目录中有一个额外的jar – myproject-0.0.1-SNAPSHOT-jar-with-dependencies.jar 。 但是,此jar中的Log4j2Plugins.dat文件包含原始插件的映射,与log4j-core库中的文件相同。 这就是问题,因为它没有任何对我的自定义插件的引用。 似乎来自myproject-0.0.1-SNAPSHOT.jar的文件被log4j库中的原始文件覆盖,但我不确定是什么情况。 因此,当我运行myproject-0.0.1-SNAPSHOT-jar-with-dependencies.jar时 ,log4j无法从我的项目中找到插件类。 我认为myproject-0.0.1-SNAPSHOT.jar运行正常,但是如果没有依赖项我就无法运行它。 配置中的packages属性应该在2.0.1版本中重新启用,但如果我不想等待发布,我必须使用注释处理方法。 你知道如何解决它吗? 我尝试使用log4j的2.0-rc1版本运行它,其中配置元素的packages属性可用。 结果是: […]

Java 9,Hibernate和java.sql / javax.transaction

我试图使用Hibernate将项目“升级”到Java 9,但是我在使模块正常运行时遇到了问题。 我的module-info.java的相关部分如下所示: module test { … requires java.base; requires hibernate.core; requires java.naming; } 以及我POM中的相关依赖项 javax.xml.bind:jaxb-api ,2.3.0 org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec ,2.0.0.Alpha1 org.hibernate:hibernate-core ,5.2.12.Final javax.transaction:javax.transaction-api ,1.2 问题是,如果我运行程序,我得到javax/transaction/SystemException的NoClassDefFoundError 。 我调查了这个,很明显, 我的模块缺少javax.transaction的requires 。 所以我在javax.transaction-api上添加了一个模块依赖。 然后我继续尝试再次运行程序 – 现在我缺少java/sql/SQLException 。 以下是我遇到的问题:如果我在包含此类的模块java.sql上添加依赖项,我最终会遇到冲突: module从java.sql和javax.transaction.api读取包javax.transaction.api java.sql和javax.transaction.api包含不同的包,并且有一个共同的( javax.transaction.xa ), 但我需要所有这些包 。 我该如何处理? 我缺少一些简单的东西吗?

嵌入式GlassFish忽略Maven测试资源

我有几个会话bean,我已经编写了unit testing。 我已经设置Maven在src / main / resources / META-INF目录中包含一个persistence.xml,该目录引用本地MySQL数据库用于开发目的。 我在src / test / resources / META-INF目录中有另一个persistence.xml,它引用了嵌入式Derby数据库__default。 测试部署到嵌入式GlassFish 3.1容器中。 但是,当我运行测试时,我收到以下错误: java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for ‘jdbc/mylog’ jdbc / mylog是主目录中的持久性单元引用的MySQL数据库。 它显然忽略了测试目录中的持久性单元,但我不知道为什么。 据我所知,Maven正确地设置类路径,在类之前使用测试类,在实际目标/测试类/ META-INF目录中查看它显示它复制了正确的嵌入式Derby持久性单元。 [DEBUG] Test Classpath : [DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\test-classes [DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\classes [DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\eclipselink\2.2.0\eclipselink-2.2.0.jar [DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\javax.persistence\2.0.3\javax.persistence-2.0.3.jar [DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\org.eclipse.persistence.jpa.modelgen.processor\2.2.0\org.eclipse.persistence.jpa.modelgen.processor-2.2.0.jar [DEBUG] C:\Users\Laurens\.m2\repository\org\glassfish\extras\glassfish-embedded-all\3.1\glassfish-embedded-all-3.1.jar [DEBUG] C:\Users\Laurens\.m2\repository\javax\javaee-web-api\6.0\javaee-web-api-6.0.jar [DEBUG] C:\Users\Laurens\.m2\repository\junit\junit\4.8.1\junit-4.8.1.jar 关于如何让GlassFish使用正确的持久性单元的任何暗示非常感谢! 谢谢!

使用maven和jenkins,如何测试程序员做了一些测试用例?

我正在开发一些项目,我们正在使用Java,Springs,Maven和Jenkins进行CI,但我遇到的问题是一些程序员没有在项目中添加真正的junit测试用例。 我希望maven和jenkins在部署到服务器之前运行测试。 一些程序员进行了空白测试,因此启动和停止并通过测试。 有人可以请告诉我如何自动进行此检查,以便maven和jenkins可以查看测试是否输出了一些输出。

Maven – 使用-source 5或更高版本来启用…同时构建项目

我从我们的svn下载了一个项目,现在我正在尝试使用Maven构建它(mvn clean install …我的maven是Apache Maven 3.0.4)。 不幸的是,当我尝试构建时,会发生以下错误。 奇怪的是它报告了一些关于Java版本1.3的东西(我认为),当然我没有在我的笔记本电脑中安装它。 我将JAVA_HOME设置为JDK 1.7,我的javac也是1.7版本… 请问你知道问题在哪里吗? [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project irapi: Compilation failure: Compilation failure: [ERROR] /home/jan/nutch/src/plugin/irapi/src/main/java/cz/cvut/fit/linkedtv/irapi/rest/MediaServer.java:[21,1] error: **annotations are not supported in -source 1.3** [ERROR] [ERROR] (use -source 5 or higher to enable annotations) [ERROR] /home/jan/nutch/src/plugin/irapi/src/main/java/cz/cvut/fit/linkedtv/irapi/solr/SolrQueryResponseConvertor.java:[35,26] error: **for-each loops are not supported in -source […]

如何在运行Tomcat时获取软件包版本?

如何在运行Tomcat时获取软件包版本? 我尝试getClass()。getPackage()。getImplementationVersion()但这总是返回null 。 我想这是因为我的战争尚未打包,Tomcat执行.classes(又名爆炸战争)。 META-INF\MANIFEST.MF存在于最终战争中,但不存在于target\\META-INF文件夹中 java.lang.Package中 包对象包含有关Java包的实现和规范的版本信息。 检索此版本控制信息,并由加载类的ClassLoader实例提供。 通常,它存储在随类分发的清单中。 相关的是运行时的Get Maven工件版本 UPDATE。 在我已经为war build添加配置之前。 但是当从Eclipse运行Tomcat时,我得到null 。 maven-war-plugin 2.1 true true <!– this actually moves classes from \WEB-INF\classes to new jar true –>

Maven – 聚合的“全部”或“父母”项目?

出于教育目的,我已经建立了一个像这样的项目布局(为了更好地适应日食): -product | |-parent |-core |-opt |-all Parent包含一个包含core,opt和all的聚合项目。 Core实现了应用程序的强制部分。 Opt是可选部分。 所有这些都应该将core与opt结合起来,并将这两个模块列为依赖项。 我现在正在尝试制作以下工件: 产品core.jar添加 产品核心src.jar 产品的核心与 – dependencies.jar 产品opt.jar 产品-OPT-src.jar 产品选择与 – dependencies.jar 产品all.jar在 产品全src.jar 产品全有,dependencies.jar 他们中的大多数生产相当简单。 我确实有一些聚合工件的问题。 我已经设法在’all’模块中使用自定义程序集描述符生成product-all-src.jar,该模块下载所有非传递deps的源代码,这样可以正常工作。 这项技术还允许我使用all-with-dependencies.jar。 然而,我最近发现您可以在源插件中使用source:aggregate目标来聚合整个聚合项目的源。 对于javadoc插件也是如此,它也通过父项目的使用进行聚合。 所以我在’all’模块方法和放弃’all’模块之间徘徊,只使用’parent’模块进行所有聚合。 在’父’中产生一些聚合工件并且在’all’中产生其他产品感觉不干净。 有没有办法在父项目中制作’product-all’jar,或者在’all’项目中聚合javadoc? 或者我应该保留两者? 谢谢