Skip execution of a maven plugin if a file does not exist

元气小坏坏 提交于 2019-12-13 14:16:21

问题


I want to put the hibernate3-maven-plugin in my parent pom and have execution skipped in child modules if a given file does not exist in that module.

Is there any way to do this?

Up to now, I have had to do this:

<plugin>
   ...
   <configuration>
      <skip>true</skip>
      <propertyfile>target/test-classes/jdbc.properties</propertyfile>
   </configuration>
</plugin>

In the parent POM, and:

<plugin>
   ...
   <configuration>
      <skip>${maven.test.skip}</skip>
   </configuration>
</plugin>

In all child POMs where I want it to execute. I.E Those actually having a jdbc.properties file.


回答1:


You may be able to do this with profiles, but I suppose you'd probably not want to run it in the parent project, which may be problematic.
Here are some links on profiles:

  • http://maven.apache.org/guides/introduction/introduction-to-profiles.html
  • http://www.sonatype.com/books/mvnref-book/reference/profiles.html
  • http://mindthegab.com/2008/12/02/howto-give-your-multimodule-maven-build-subprojectenvironment-specific-behavior/

This question, had a similar issue and was not able to solve it with profiles:
activate-different-maven-profiles-depending-on-current-module




回答2:


I'm not 100% on the logistics but you could possibly use the maven exec plugin in combination with a shell script. The shell script would check for the presence of the file and then invoke the mvn plugin using the maven pom directory - which can be obtained and passed to the shell script via the Maven environment variables.



来源:https://stackoverflow.com/questions/4287451/skip-execution-of-a-maven-plugin-if-a-file-does-not-exist

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