Single command to build all Eclipse maven projects in current workspace?

拥有回忆 提交于 2019-12-10 02:16:10

问题


Does anyone know any simple yet effective way to build all Maven projects in current workspace, for example, maven clean install for each such project.

Is it for example possible to select multiple projects and use something similar to ${project_loc} or get a popup with possible projects to use for the run configuration? Or any other way?

I'm using Eclipse Juno.


回答1:


Can you give them all a parent pom.xml and then mvn compile the parent pom.xml?

Look for project inheritance here.

If you can specify relative paths, this shouldn't be too hard. Create a new maven project with a pom.xml something like:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.    apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>parent-app</artifactId>
    <packaging>pom</packaging>
    <version>1</version>
    <modules>
        <module>../project1</module>
        <module>../project2</module>
    </modules>
</project>

Delete the projects from your Eclipse workspace (but not the file system) and then import the parent maven project. Now you can:

Run As... > Maven build > clean compile (as Goals)

and it should clean and compile all the projects.




回答2:


As a launch configuration is always related to one project, there is no way to put many projects into a launch configuration by pure Eclipse tooling. However, there are some workarounds:

  • Use a parent.pom to have a new project including all the existing ones (and doing the iteration in Maven).
  • Really define a launch config for each project and then use either CDTs launch groups or the EclipseRunner plugin to launch them batch like.
  • Use an Ant script to iterate over your workspace directories and call the launch config using Ant4Eclipse.

That said, your best bet is the parent.pom, as it is a proven way and you can reuse that on your continuous integration server.



来源:https://stackoverflow.com/questions/11797886/single-command-to-build-all-eclipse-maven-projects-in-current-workspace

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!