Java Maven和Intellij构建方式不同

Java Maven和Intellij构建方式不同,java,maven,intellij-idea,dropwizard,Java,Maven,Intellij Idea,Dropwizard,我有一个家长。 当我在父级上编写mvn clean install时,我的dropwizard应用程序构建良好 但是,在Intellij中,它失败了,因为它找不到我的config.yml文件 问题是我需要在Intellij中包含模块目录,而不是在Maven中。为什么呢 运行mvn安装 public static void main(String[] args) throws Exception { new CivilizationApplication().run(new String[

我有一个家长。 当我在父级上编写
mvn clean install
时,我的dropwizard应用程序构建良好

但是,在Intellij中,它失败了,因为它找不到我的
config.yml
文件

问题是我需要在Intellij中包含模块目录,而不是在Maven中。为什么呢

运行
mvn安装

public static void main(String[] args) throws Exception {
    new CivilizationApplication().run(new String[]{"server", "src/main/resources/config.yml"});
}
在Intellij中,我必须更改为以下内容

public static void main(String[] args) throws Exception {
    new CivilizationApplication().run(new String[]{"server", "civilization-rest/src/main/resources/config.yml"});
}

如何配置Intellij,使其在不指定模块目录的情况下工作?

您可以尝试在运行配置中设置工作目录


我还将查看您的
pom.xml
配置,看看您是否可以在导入maven项目时更改工作源代码集以使用此目录。

您只需告诉Intellij执行与maven启动时完全相同的操作

您可以通过单击“启动应用程序”按钮旁边的下拉菜单来执行此操作。在这里,您可以通过单击左侧的+然后选择Maven来定义使用Maven的新运行配置

然后,您只需输入
clean install exec:java
,其中显示“命令行”,它的工作方式应该与您从命令行手动执行它时的工作方式完全相同。调试也应该像这样工作,没有任何问题


工作目录设置为
$MODULE\u DIR$
。Maven始终使用$MODULE_DIR$,但默认情况下,IntelliJ应用程序执行可能没有$MODULE_DIR$


这里的问题是,您使用相对路径而不是类路径引用资源文件

因此,与其

new CivilizationApplication().run(new String[]{"server", "src/main/resources/config.yml"});
你最好有这个

new CivilizationApplication().run("server", getClass().getResourceAsStream("config.yml"));

(显然,还要确保更改#run()方法的签名)

这只是一个想法,但可能与未复制的资源有关


我在OSX上,所以如果你在Windows上,确切的条款可能会有所不同,但对我来说。。。在首选项中,选择“构建、执行、部署”,然后选择“编译器”,并尝试将“?*.yml”添加到资源模式中

您在maven中使用什么来执行此代码?
mvn clean install
mvn exec:java
。mvn clean install运行运行相同代码的集成测试。我试试这个。我还是想知道为什么这不起作用。。。我一定还有其他的配置,谢谢你的提示。我将研究它我必须在pom.xml中添加什么才能获得工作源代码集?工作目录完全工作了!谢谢如果您可以详细说明pom.xml,那么这就是greatI在这里找到的答案:maven中的workingDirectory不起作用