如何在maven中使用不同的JAR进行编译和测试?

2024-05-12

我根据 javaee-api 编译我的程序。但对于 Junit 测试,我必须使用 glassfish javaee.jar 等特定实现来避免类似错误java.lang.ClassFormatError:类文件 javax/persistence/Persistence 中非本机或抽象的方法中缺少代码属性(也可以看看1 http://forums.sun.com/thread.jspa?threadID=5320401).

因此,避免使用仅在 glassfish 实现中可用的方法,我想使用通用 api 编译我的工件,但使用实现 jar 运行 junit。但两者都提供相同的命名类和接口,因此类加载器会遇到麻烦。

解决这个问题的最佳方法是什么?我可以用maven解决这个问题吗?

多谢


我认为这是可能的。实际上,从2.0.9版本开始,Maven使用POM命令来构建类路径,因此您现在可以操作它。如果你把它与依赖范围 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope,应该可以实现你想要的。实际上,如果您将 GlassFishjavaee依赖性(带有test scope) before the javaee-api依赖关系,在测试类路径中,前者应放在后者之前,以便由单元测试使用,而后者将在编译期间使用。从理论上讲,这应该可行,但它有点脆弱,因此需要仔细记录。

类似的东西(用一个虚构的 GFv3 jar):

<dependencies>
  <dependency><!-- this one will be first on the test classpath -->
    <groupId>org.glassfish</groupId>
    <artifactId>javaee</artifactId>
    <version>6.0</version>
    <scope>test</scope>
  <dependency>
  <dependency><!-- this one will be used during compile -->
    <groupId>javax.javaee-api</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
  <dependency>
  ...
</dependencies>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在maven中使用不同的JAR进行编译和测试? 的相关文章

  • 如何让 Heroku 安装 devDependency?

    我希望 Heroku 在推送应用程序后构建我的应用程序 这样我就不必每次进行更改时都将构建文件夹向上推送 然而 Heroku 仅安装来自package json和 grunt 我的构建工具 及其所有组件都在devDependencies 我
  • Spark Workers 上缺少 SLF4J 记录器

    我正在尝试通过以下方式运行工作spark submit 此作业导致的错误是 Exception in thread main java lang NoClassDefFoundError org slf4j Logger at java l
  • 如何将 ZF2 单元/应用程序模块测试合并到单个调用中?

    我遵循将测试存储在模块中的 ZF2 约定 并且当从每个模块内运行测试时一切正常 我想做的是有一个根级别的 phpunit xml 来调用各个模块测试并将它们合并以生成代码覆盖率数据和其他指标 问题是每个单独的测试套件都是在模块化 phpun
  • ASP.NET 4.0 中的模拟 HttpRequest

    我见过很多类似的帖子 但没有一个能真正解决我的特殊情况 我正在 ASP NET 4 0 Web 应用程序 ASP NET Forms 而不是 MVC 中编写单元测试 代码中有几个地方我称之为ServerVariables调用变量的集合 例如
  • 无法加载“IE”,它没有注册! Karma 上的错误消息

    我正在使用 karma 在多个浏览器上运行 js 测试 该测试适用于 Chrome 和 Firefox 但我无法在 IE 上激活它们 我收到以下错误消息 无法加载 IE 它没有注册 也许你错过了一些 插入 在我的配置文件上 SET CHRO
  • Xcode 5:单元测试未运行

    我创建了一些测试用例 它们都通过了 那是因为它们没有被运行 从 Xcode 中 我得到 Test Suite All tests started at Test Suite All tests finished at Executed 0
  • 需要帮助理解这段代码

    我正在尝试学习单元测试 我正在尝试对我在 asp net mvc 1 0 中制作的一些会员资格内容进行单元测试 我一直在关注一本关于 MVC 的书 我对一些东西感到困惑 希望有人能为我解答 我的框架使用 Nunit 和 Moq 问题一 pu
  • Android:使用 Robolectric 和 Mockito 对 Android 应用程序进行单元测试

    我有一个 Java 库 它使用了 Android API 中的一些东西 我想使用 Mockito 为这个库编写单元测试 我有办法解决这个问题吗 Mockito 在 Dalvik VM 上运行不佳 请参阅这篇文章 将 Mockito 与 An
  • 使用 Netbeans 7.0.1、Maven 在 JSF2 中打包复合组件

    我在 Internet 上阅读了很多有关将 JSF2 复合组件打包到 JAR 文件中的内容 有人知道我在哪里可以找到 JAR 的结构 规格 官 方文档等 有没有办法使用 Netbeans IDE 来做到这一点 或者 Maven 是否存在原型
  • 如何在要测试的 React 组件内模拟自定义钩子?

    如果您有一个调用获取数据的自定义挂钩的 React 组件 那么在测试 React 组件时模拟内部自定义挂钩结果的最佳方法是什么 我看到两种主要方法 1 Jest mock 自定义钩子 这似乎是最推荐的方法 但它似乎要求测试对内部实现细节以及
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github
  • 如何仅在特定错误退出值(0 除外)上将 Jenkins 构建标记为成功?

    当我运行Execute shell构建步骤来执行脚本并且该脚本返回0 Jenkins将构建标记为SUCCESS 否则它将其标记为FAILURE这是预期的默认行为0表示没有错误 任何其他值表示有错误 有没有办法将构建标记为SUCCESS仅当返
  • ASP.NET Core 中 AsNoTracking 的模拟或更好的解决方法

    您如何模拟 AsNoTracking 或者是否有更好的解决方法来解决此问题 Example public class MyContext MyContextBase Constructor public MyContext DbContex
  • Angular2 如何对自定义验证器指令进行单元测试?

    我为输入字段编写了一个非常简单的自定义验证器 import Directive from angular core import AbstractControl NG VALIDATORS from angular forms functi
  • 模拟 DBSet,EF 模型优先

    正如标题所说 我遵循模型优先方法 所以我的模型类是自动生成的 如果我想嘲笑DBContext衍生的MyModelContainer其中包含DBSets实体类 阅读一些内容 为了进行单元测试 您需要将其更改为IDBSet 是否可以做到这一点
  • 包括 PHPUnit 在内的麻烦

    我想开始为我的代码编写测试 因此我使用以下命令安装了最新的 PHPUnit wget http pear phpunit de get phpunit phar chmod x phpunit phar mv phpunit phar us
  • 如何从 Visual Studio 以调试模式运行 NUnit?

    我最近正在为我一直在研究的一些 C 构建一个测试框架 我在工作区中设置了 NUnit 和一个新项目来测试该组件 如果我从 Nunit v2 4 加载单元测试 一切都会很好 但我已经到了在调试模式下运行并设置一些断点非常有用的地步 我已经尝试
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • NSubstitute - 测试特定的 linq 表达式

    我在当前正在开发的 MVC 3 应用程序中使用存储库模式 我的存储库界面如下所示 public interface IRepository
  • XCode:代码覆盖率数据生成失败

    当我尝试运行单元测试时 我在 Objective C 项目中遇到了这个可怕的问题 我已经尝试了以下所有方法 根据各种 SOF 帖子 清除派生数据 删除 Library 中的所有模拟器设置 重新启动 XCode 重新启动MBP 多次重置模拟器

随机推荐

  • 被一个简单的正则表达式难住了

    我想看看字符串是否s包含正则表达式中的任何符号 下面的正则表达式可以正常工作rubular http rubular com s asd d s 但在 Ruby 1 9 2 中 它给出了以下错误消息 syntax error unexpec
  • 如何将txt文件添加到你的android项目中? [复制]

    这个问题在这里已经有答案了 我的Android studio版本是1 5 1 显然这个 never 版本没有 txt 文件的 asset 文件夹 您打算如何将这些文件包含到您的项目中 以及如何进一步使用您内部的应用程序 谢谢你的建议 Pro
  • gtest 和 gmock 有什么区别?

    我试图理解的目的google mock Google 的 C 模拟框架 https github com google googletest blob master googlemock README md 我已经与gtest较早 但我还是
  • asp.net c# 将数据集中的数据转换为电子邮件正文?

    从数据集到电子邮件正文的最佳方式是什么 我有一个 net 控制台应用程序 用于根据存储过程的结果发送电子邮件通知 并且想知道如何最好地从 SQL 数据转到电子邮件正文 带有颜色和字体的 html 正文是最好的 但纯文本也可以 thanks
  • 打开文件路径在 python 中不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个数据库程序 personica 是我的测试主题 我通常在文件路径的位置有一个变量 但出于测试和演示的目的 我只有一个字符串 在我的计算机上的这个确切位置有一个文本文件 顺便说一句 因为我很偏执 所以
  • 从反应本机SectionList中的节项访问节数据

    我需要访问有关反应本机SectionList 中的renderItem 内的部分 索引 值 的信息 根据http docs w3cub com react native sectionlist renderitem http docs w3
  • 通过名称查找进程ID

    如何在 Ruby 中通过名称或完整命令行找到 pid 而不调用外部可执行文件 我正在将 SIGUSR2 发送到命令行包含的进程ruby job rb 我想在不打电话的情况下执行以下操作pgrep uid Process uid pid pg
  • CMake 和 Visual Studio:如何获得快速、安静的命令行构建?

    我有一个 cmake 项目 它成功地完成了我想要的一切 但我有大约 100 个文件 当我只需要重新编译一个文件时 我厌倦了每次看到生成的巨大输出 每个文件 30 行 明确地说 我正在编译cmake build 得到这个结果 我需要传递给编译
  • 需要一个正则表达式将 css 类添加到第一个和最后一个列表项

    更新 谢谢大家的意见 一些附加信息 它实际上只是我正在使用的一小部分标记 20 行 目的是利用正则表达式来完成工作 我还能够修改脚本 电子商务脚本 以在构建导航时插入类 我想限制我所采用的黑客数量 以便在更新到软件的最新版本时让事情变得更容
  • 以编程方式结束/退出粘合作业

    我正在使用 Glue 书签来处理数据 我的工作是每天安排的 但也可以 手动 启动 由于我使用书签 有时胶水作业可以在没有新数据要处理的情况下启动 然后读取的数据帧为空 在这种情况下 我想好好地结束我的工作 因为它没有什么关系 我试过 if
  • Correct_user 和 admin 的多个 before_filter 语句

    我有一个组资源 我正在尝试使用适当的授权来设置该资源 我试图实现的授权逻辑是这样的 只有群组成员才能查看他们的群组 管理员可以查看any组 以及采取其他行动 我尝试在组控制器中使用以下 before filter 语句来执行此操作 befo
  • NativeScript 错误。在列表模板中找到多个视图

    我有这样的ListView
  • 半流体布局 CSS/Html

    我有一个两列布局 其中右列的静态宽度为 350px 左列的宽度应填充页面的其余部分 或者至少这是我想要发生的事情 但不幸的是事实并非如此 看一下我的 css html http jsfiddle net CmJ7P http jsfiddl
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • 如何将 vue3-openlayers 插件添加到 nuxt

    我有以下 main ts 文件Vue3 https v3 vuejs org import createApp from vue import App from App vue How to do this in nuxt3 import
  • 如何在 MFC 中调整对话框大小时移动控件?

    我已经在 MFC 中创建了对话框视图 从下图中可以清楚地看到 如滑块控件和编辑框等 当我调整对话框大小时 这些控件不会移动 在此输入图像描述 https i stack imgur com 7OxAK jpg 我想移动控件以适应对话框 但不
  • 将指针转换为浮点数?

    我有一个unsigned char 通常 这指向一块数据 但在某些情况下 指针就是数据 即 铸造一个int的价值unsigned char 指针 unsigned char intData unsigned char myInteger 反
  • 思考狮身人面像和控制台

    我在 webfaction 上思考 sphinx 时遇到问题 当我在 osx 上本地执行时没有问题 I search gt gt ThinkingSphinx 搜索 雷蒙德 我的回应是这样的 gt 有任何想法吗 thx sg 如果你还没有
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何在maven中使用不同的JAR进行编译和测试?

    我根据 javaee api 编译我的程序 但对于 Junit 测试 我必须使用 glassfish javaee jar 等特定实现来避免类似错误java lang ClassFormatError 类文件 javax persisten