Java、IntelliJ、maven项目-导入问题
这可能是个愚蠢的问题,但我需要知道。如果它太傻而无法回答,我会删除它 在IntelliJ中的maven项目中,我有以下结构:Java、IntelliJ、maven项目-导入问题,java,maven,intellij-idea,import,Java,Maven,Intellij Idea,Import,这可能是个愚蠢的问题,但我需要知道。如果它太傻而无法回答,我会删除它 在IntelliJ中的maven项目中,我有以下结构: procedure e2e cucumber (same level as common) src test java e2e support File: S
procedure
e2e
cucumber (same level as common)
src
test
java
e2e
support
File: ScenarioState.java
package e2e.support
common (same level as cucumber)
src
main
java
common
testdata
File: Case.java
package common.testdata
是否有任何方法将包e2e.support(ScenarioState.java所在位置)导入到common.testdata包中的文件Case.java
我一直在玩弄maven导入、依赖项等,但我还没有找到一种方法。我可能需要重新设计一些类来绕过它,但这会影响项目的其他部分,如果可能的话,我希望避免这种情况。如果您真的想这样做(我强烈建议您要么不去管项目,要么先重新构造它),请定义一个额外的源目录,如中所示
但是要小心,像这样的项目会一直困扰着你 可以在
common
的pom.xml中使用测试jar对cucumber
进行依赖
但是,这违反了最终产品的src/main和单元测试的src/test的概念(不包含在产品中,单独的测试类别)
(在src/test中可以有其他类,所以对于common来说,最简单的方法可能是使用一个src/test。)
如果ScenarioState与src/main无关,则可以将其放在src/main中更低级的库cucumberbase
中。并在cucumber
中使用test
对cucumberbase
建立依赖关系。在
中,对黄瓜碱的正常依赖关系
保持主测试分离,否则其他开发人员会冒着疯狂的风险。也许吧,但这看起来确实是个坏主意。您不应该将测试类导入到主类中。我原则上同意。然而,这个项目整体上是一个测试自动化项目。类的放置位置不一定反映“test”或“main”功能性。ScenarioState类是测试在每次测试运行期间用于存储状态的对象。如果整个项目用于测试自动化,则它应该在src/main/java
中包含所有类。当然,除非您想测试测试自动化;-)。是的,这个组织可能会更好。然而,我并不是由我自己创造的,此时重组整个项目不在我的范围之内。