【问题标题】:Does IntelliJ IDEA skip maven build lifecycle?IntelliJ IDEA 是否跳过 Maven 构建生命周期?
【发布时间】:2017-05-21 14:52:52
【问题描述】:

在我的pom.xml 中,我有一个插件可以将文件从一个文件夹复制到另一个文件夹。

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>install</phase> <!--Other phases don't work in IntelliJ IDEA either-->
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/src/main/resources</outputDirectory>
                <resources>
                    <resource>
                        <directory>${basedir}/src/main/ui/build</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

当我运行mvn clean install 时,文件复制成功。但你知道,我很少使用 maven 来构建和部署应用程序,我总是单击 IntelliJ IDEA 中的按钮来部署应用程序。这样就不会复制文件了。

那么 IntelliJ IDEA 中的部署过程会跳过 maven 安装吗?我怎样才能使这项工作?谢谢。

【问题讨论】:

  • 你为什么要这样手动复制?这样做的目的是什么?

标签: spring maven spring-mvc intellij-idea spring-boot


【解决方案1】:

我建议您编辑您在共享的图像中使用的运行配置,并将 Maven 目标添加到构建步骤。试试这个

  • 编辑配置..
  • 启动前-&gt;添加-&gt;运行Maven目标-&gt;mvn clean install(命令行)-&gt;确定
  • 您可以根据自己的喜好重新排序 Make, Run Maven Goal。

附上可以帮助您添加启动前任务的示例图像 -

所以下次当你在这里按下开始按钮时,maven 目标会自动执行。

PS : -&gt; 涉及(选择/输入)

【讨论】:

  • 嗯,这是对症治疗!您希望能够从 IntelliJ 运行,为此您需要将资源放在正确的位置!
【解决方案2】:

当您的运行配置如屏幕截图所示时,intellij 只是编译模块(使用模块输出路径),然后运行目标 main 并选择模块类路径。

如果您想预先运行任何 maven 目标,则需要在 make 所在的“启动前”中的“运行配置”中设置这些目标。

您的资源似乎有问题。这些应该由 IntelliJ 自动复制到类路径中。这是在设置 => 编译器 => 资源模式中配置的。

【讨论】:

  • 让我感到奇怪的一件事是你从 /src/main/ui/build 复制,这是资源的错误位置,你应该只在 main 中有代码,资源应该在/src/resources/ui/build,然后 IntelliJ 自动复制它们。
猜你喜欢
  • 1970-01-01
  • 2012-05-13
  • 2011-08-12
  • 2012-07-08
  • 2012-03-15
  • 2019-09-28
  • 1970-01-01
  • 2019-02-12
  • 2011-07-31
相关资源
最近更新 更多