gpt4 book ai didi

java - DTD 显示在 Eclipse 中的项目目标路径中,但通过 Maven 命令行使用时不显示

转载 作者:行者123 更新时间:2023-12-02 08:31:34 24 4
gpt4 key购买 nike

我不确定最好的标题是什么,所以如果有人有更好的建议,请离开。

我不确定应该提供哪些信息,所以我会告诉您发生了什么。

我有一些单元测试在 Eclipse 中顺利通过。在这些测试中,有一些 XML 正在针对自定义构建的 DTD(如果有人熟悉的话,稍作修改的 Apelon DTS DTSConcept)进行验证。在 Eclipse 中,当我运行这些测试时,我可以在项目的目标路径中看到 dtds 显示出来。

因此,dir1/dir2/dtds/myDtd.dtd 存在于项目的目标路径中。

但是,如果我使用 maven 在命令行上运行单元测试(mvn clean test),这些测试会因 MalformedURLException 而失败。我能够摆脱 DTD 验证并且测试通过,所以我知道这与此有关。经过许多尝试后,无论出于何种原因,我查看了项目的目标路径。现在,dir1/dir2/dtds/myDtd.dtd 不存在。这似乎就是我收到异常的原因——该文件不存在。

我意识到这可能太模糊了,但是您是否可以想到为什么我在 Eclipse 中运行与使用 Maven 命令行相比会得到这些不同的结果?

我将根据要求提供更多信息,但我不确定到底要包含哪些内容。

感谢您的帮助。

编辑:好吧,问题似乎是 Maven 在构建时根本没有将 DTD 复制到目标目录。我可能会为此谷歌/问一个单独的问题,但我如何确保 Maven 正确复制这些文件?

最佳答案

考虑到该文件是DTD(而不是Java资源),我认为最好将其放在默认maven项目的resources/META-INF文件夹中。

默认情况下,maven 在进程资源阶段会将资源下的所有文件复制到目标目的地,因此您可以摆脱额外的插件配置。

还需要修改您的 XML 文件以指向新位置。

典型的 Maven 项目结构如下:

my-app
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| | `-- mycompany
| | `-- app
| | `-- App.java
| `-- resources
| `-- META-INF
| `-- application.properties
[ -- myDtd.dtd
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java

关于java - DTD 显示在 Eclipse 中的项目目标路径中,但通过 Maven 命令行使用时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com