我有父母pom。
当我在父母身上并写mvn clean install
时,我的dropwizard应用程序构建正常。
然而,在Intellij中它失败了,因为找不到我的config.yml
文件。
问题是我需要在Intellij中包含我的模块目录,而不是在Maven中。那是为什么?
正常运行mvn install
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,以便在不指定模块目录的情况下工作?
答案 0 :(得分:3)
您可以尝试在运行配置中设置工作目录...
我还会查看您的pom.xml
配置,看看您是否可以在导入maven项目时更改工作源集以使用此目录。
答案 1 :(得分:2)
将Working directory
设为$MODULE_DIR$
。 Maven总是使用$ MODULE_DIR $,但是对于IntelliJ应用程序执行,你可能没有$ MODULE_DIR $。
答案 2 :(得分:0)
你可以告诉Intellij在你启动时完成Maven所做的一切。
您可以点击“启动应用”按钮旁边的下拉菜单。在那里,您可以通过单击左侧的+然后选择Maven来定义一个使用Maven的新运行配置。
然后你可以在clean install exec:java
处输入“命令行”,它应该与从命令行手动执行它时的工作方式完全相同。调试也应该像这样工作,没有任何问题。
答案 3 :(得分:0)
这里的问题是您使用相对路径而不是使用类路径来引用资源文件。
所以,而不是
new CivilizationApplication().run(new String[]{"server", "src/main/resources/config.yml"});
你最好有这个
new CivilizationApplication().run("server", getClass().getResourceAsStream("config.yml"));
(显然,请务必更改#run()方法的签名)
答案 4 :(得分:0)
只是一个想法,但也许它与资源没有被复制。
我在OSX上,所以如果你在Windows上,确切的条款可能会有所不同,但对我而言......在首选项中,选择"构建,执行,部署",然后&# 34;编译器",并尝试添加&#34 ;;?*。yml"到资源模式。