【问题标题】:Maven and Intellij builds differentlyMaven 和 Intellij 的构建方式不同
【发布时间】:2015-03-13 13:15:39
【问题描述】:

我有一个父 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,使其无需指定模块目录即可工作?

【问题讨论】:

  • 你在 maven 中使用什么来执行这段代码?
  • mvn clean installmvn exec:java。 mvn clean install 运行运行相同代码的集成测试

标签: java maven intellij-idea dropwizard


【解决方案1】:

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

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

【讨论】:

  • 感谢您的提示。我会调查的
  • 我必须在 pom.xml 中添加什么才能获得工作源集?
  • 工作目录完全有效!谢谢。如果你能详细说明 pom.xml 那就太好了
  • 我在这里找到了答案:stackoverflow.com/questions/8397860/…workingDirectory in maven did not work
【解决方案2】:

Working directory 设置为$MODULE_DIR$。 Maven 总是使用 $MODULE_DIR$,但默认情况下您可能没有 $MODULE_DIR$ 用于 IntelliJ 应用程序执行。

【讨论】:

    【解决方案3】:

    您可以告诉 Intellij 在启动 Maven 时执行与 Maven 完全相同的操作。

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

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

    【讨论】:

    • 谢谢。我会试试这个。我仍然想知道为什么这不起作用......我必须做一些其他配置
    【解决方案4】:

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

    所以,而不是

    new CivilizationApplication().run(new String[]{"server", "src/main/resources/config.yml"});
    

    你最好有这个

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

    (显然,请务必更改#run() 方法的签名)

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-31
        • 2020-06-09
        • 2017-06-04
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多