Tag: maven 2

如何指示Maven忽略我的main / resources / persistence.xml以支持test / …?

为了测试,我有两个persistence.xml文件: src/main/resources/META-INF/persistence.xml src/test/resources/META-INF/persistence.xml 如何指示Maven在测试期间忽略第一个文件? 现在它不会被忽视,因为OpenEJB说: ERROR – FAIL … Finder: @PersistenceContext unitName has multiple matches: unitName “abc” has 2 possible matches.

如何unit testing客户端服务器代码

我目前正在编写Java客户端服务器应用程序。 所以我想实现两个库,一个用于客户端,一个用于服务器。 客户端服务器通信有一个非常严格的协议,我不想用JUnit测试。 作为构建工具我使用Maven和Husdon Server进行持续集成。 实际上我没有任何好主意如何测试这些客户端/服务器库。 我有以下方法: 只需编写一个虚拟客户端来测试服务器并编写一个虚拟服务器来测试客户端。 缺点:不幸的是,这将导致许多额外的工作。 我无法100%确定客户端和服务器可以一起工作,因为我不确定测试是否完全相同。 编写一个单独的测试项目,将客户端和服务器一起测试。 缺点:unit testing不属于自己的项目,因此Hudson不会自动运行它们。 在其中一个库中更改任何内容的每个人都必须手动运行测试以确保一切正确。 此外,我不会收到任何代码覆盖率报告。 有没有比这更好的测试代码方法? 也许测试一个Maven多模块项目,或类似的东西。 我希望任何人都能为这个问题找到一个好的解决方案。 谢谢。

Maven字符串替换文本Web资源

我有一个带有文本文件的Maven Web应用程序 的src /主/ web应用/ textfilesdir 据我了解,在包阶段,这个textfilesdir目录将被复制到 目标/项目-1.0-快照 目录,然后压缩成一个 目标/项目-1.0-SNAPSHOT.war 问题 现在,我需要在target / project-1.0-SNAPSHOT / textfilesdir中对文本文件的内容进行字符串替换。 然后必须在将textfilesdir复制到target / project-1.0-SNAPSHOT之后但在创建target / project-1.0-SNAPSHOT.war文件之前完成此操作。 我相信这一切都是在包装阶段完成的。 插件(可能是maven-antrun-plugin)如何插入包阶段来执行此操作。 文本文件不包含要过滤的$ {property-name}等属性。 字符串替换可能是唯一的选择。 选项 在创建WAR之前,在复制到target / project-1.0-SNAPSHOT目录之后修改文本文件。 打包后,从WAR中提取文本文件,修改它们,然后将它们添加回WAR。 我想在这里有另一种选择,我很想念。 想什么?

从jar或类路径的任何地方读取文件?

我正在尝试构建一个将资源文件构建到jar中的应用程序,但我希望项目可以在eclipse中运行。 我的项目有一个基本的maven 2结构,我不确定如何读取文件,以便在从JAR运行或从eclipse运行时找到并使用它。 思想? 结构体: src/main/java src/main/resources/file.txt 目前的阅读方法: getClass().getResourceAsStream(“/file.txt”) 是否有读取方法将获取src / main / resources / *,以及JAR的根级别(部署资源的位置)?

Maven 2:如何在WAR文件中打包当前项目版本?

我正在使用Maven 2来构建我的Java项目,我正在寻找一种方法来向用户呈现pom.xml的当前版本号(例如,使用Servlet或JSP)。 据我所知,最好的方法是Maven将版本号作为文本文件打包到WAR中。 这允许我从该文件中读取版本并以我想要的方式呈现它。 有谁知道一个插件可以为我做这样的事情? 也许WAR插件可以这样配置? 或者也许一起使用其他方法?

GWT webappcreator创建Maven项目:源附件不包含文件URLClassPath.class的源

我创建了一个基于Maven2的GWT应用程序,将其导入Eclipse,当我调试为GWT Web应用程序时,Eclipse调试会话暂停FileNotFoundException。 它显示一个窗口:源附件不包含文件URLClassPath.class的源。 我已经彻底清除了Eclipse工作区(和.metadata子目录),创建/导入了一个空白项目,同样的事情发生了。 如果我运行作为 GWT Web应用程序,它工作正常(有几个警告)。 我需要调整什么来使其在调试模式下工作? 重现问题的步骤 1)创建应用程序 webAppCreator -noant -maven -XnoEclipse -out MyApp com.example.MyApp 2)导入和更改设置 将应用程序导入Eclipse工作区,在“使用Google Web Toolkit”复选框的设置中勾选。 “选中此项目有一个WAR目录”。 WAR目录设置为src / main / webapp。 未选中“从此目录启动和部署”。 3)调试为 现在按下调试工具栏按钮,选择“GWT Web Application”,然后选择target / www作为WAR目录。 你应该看到同样的问题。 “调试”窗格中的调用堆栈包含以下内容: MyApp.html [Web应用程序] localhost上的com.google.gwt.dev.DevMode:51620线程[main](已挂起(exceptionFileNotFoundException)) URLClassPath $ JarLoader.getJarFile(URL)行:644 URLClassPath $ JarLoader.access $ 600(URLClassPath $ JarLoader,URL)行:540 URLClassPath $ JarLoader $ 1.run()行:607 AccessController.doPrivileged(PrivilegedExceptionAction)行:不可用[native […]

如何将战争合二为一?

在我们公司,我们有许多不同的模块构建为单独的战争。 每个客户都可以挑选他想要购买的模块。 由于所有模块共享相同的会话,安全上下文等,因此将它们合并为单个战争是有意义的。 是否可以自动化此过程? 例如,它应该合并web.xml,计算每个wars依赖项,复制像.jsp和.class等文件。顺便说一句,我们使用Maven,但无法找到解决此问题的方法。

将Spring配置划分为多个项目

我们有很多项目使用相同的代码库(后端代码)。 只是前端往往是不同的。 我们认为最好的方法是将后端和前端分成不同的项目: Engine和Project_name 现在这些是Spring项目。 因此,如果我们划分Spring配置,那么它们似乎也是合乎逻辑的: Database.xml , Services.xml将属于项目Engine 。 并且特定的Frontend.xml将属于Project_Name 。 要将它们链接起来,我需要一个通用的SpringBeans.xml来导入所有这些XML。 我尝试了以下目录结构: 发动机项目 配置 弹簧 Database.xml 的services.xml Project_Name项目 配置 SpringBeans.xml 弹簧 Frontend.xml SpringBeans.xml的内容很简单: 我设置了Eclipse,因此Project_Name项目引用了Engine项目。 当我启动它时,找到SpringBeans.xml,但是找不到Engine项目中的XML文件(FileNotFoundException)。 我还要注意,在将Engine和Frontend代码分成不同的项目之前,导入其他XML文件的原理就像魅力一样。 所以我的问题是:是否有可能在不同的项目中使不同的Spring配置很好地协同工作?

maven webapp将jsps放在/ WEB-INF / jsp中

我inheritance了使用NetBean的内部ant构建的webapp。 所有jsps都位于: WEB-INF/jsp web.xml包含指向/WEB-INF/jsp/somefile.jsp的硬编码链接 如何使用maven war插件将JSP放在那里,保持与当前结构的一致性? 我的pom目前写道: ${basedir}/web/WEB-INF

从Java调用Maven目标

是否可以从Java调用Maven目标,例如,我是否可以执行以下操作: mvn clean package 来自Java类? 谢谢,尼克