【问题标题】:Eclipse run different maven goals on several projectsEclipse 在多个项目上运行不同的 Maven 目标
【发布时间】:2018-08-09 14:27:30
【问题描述】:

我在使用 Eclipse Neon 时很少有 maven 项目,

我需要在不同的项目上运行不同的目标以按顺序执行/

我找到了一个我找不到的answer,或者一个answer for same goal

使用示例:调用项目A和B的clean install,调用项目C的clean install -X,然后调用项目D的clean install tomcat7:run-war -X

【问题讨论】:

  • clean installclean install -X是同一个目标。您只需使用-X 激活调试日志
  • @jhamon 是的,项目 D 中的主要问题,clean install tomcat7:run-war -X
  • 如果不需要在eclipse中运行,可以用shell脚本来实现
  • @jhamon 你能回答如何在脚本中完成吗? (以及为什么它在 Eclipse 中不起作用)
  • 对于 Eclipse Oxygen,您可以创建启动组,请查看 this answer

标签: java eclipse maven


【解决方案1】:

一种方法是使用命令行运行 maven。

基本格式是:

mvn [goal [goal2 [goal3] ...]]

cleaninstall 是标准目标。

tomcat7:run-war 是一个插件目标。

您肯定在 pom.xml 中有一个 <plugin> 部分,为此目标设置了属性。你可以在这里找到 tomcat7 插件的所有其他目标:http://tomcat.apache.org/maven-plugin-2.1/tomcat7-maven-plugin/plugin-info.html

您需要进入每个项目文件夹并以适当的目标运行命令:

cd <project_A_pom_directory>
mvn clean install
cd <project_B_pom_directory>
mvn clean install -X
cd <project_C_pom_directory>
mvn clean install tomcat7:run-war -X

【讨论】:

  • 谢谢你的时间和回答,你能不能参考一下为什么不能在eclipse中执行?这是插件的已知问题吗?是否有开放增强功能?
  • 可以在eclipse中对单个项目执行:你可以在Run Configuration面板中设置目标。但是你不能在eclipse中以不同的目标顺序运行多个maven构建
【解决方案2】:

如果您安装命令行 Maven,您可以从您的 shell 或 cmd 调用 mvn clean install。然后你可以编写一个 sh 或 bat 文件,导航到正确的文件夹并调用 mvn 命令。

如果您通常要构建所有项目,请考虑多模块项目。如果这重构太多,您还可以定义一个单独的项目(作为反应器项目),其中包括您的四个项目作为模块。在整个项目上运行 mvn clean install 然后将在所有包含模块上运行该命令。在多模块设置中,很遗憾无法为不同模块运行不同 Maven 目标 (https://stackoverflow.com/a/4112696/927493)。您要么需要调用 Maven 两次(使用不同的模块列表),要么将 tomcat 目标添加到相关模块的安装阶段。

【讨论】:

猜你喜欢
  • 2012-10-05
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多