java - 在构建开始之前运行 bash 脚本

标签 java maven

我有一个父 pom 文件,它声明了一些模块,例如

<modules>
    <module>execution</module>
    <module>model</module>
</modules>

问题是有一个 bash 脚本 bootstrap.sh 与父 pom.xml 位于同一级别,我想在构建列出的模块之前执行该脚本以上就开始了。

用maven可以实现吗?或者还有另一种方法可以在模块编译开始之前执行 bootstrap.sh

最佳答案

构建多模块项目时,将首先构建聚合器,然后根据模块之间的依赖关系按顺序构建模块。

您可以将以下插件添加到您的聚合器(它是您在问题中提到的父pom)pom.xml 来解决您的问题。我选择初始化来执行此操作,但您也可以选择安装。查看lifecycle.此处导入的东西,当发出生命周期后期的 Maven 命令时,将执行此代码。 (例如:如果您选择 install 作为阶段,并执行 mvn package 这将不会被执行。)

<build>
  <plugins>
    <plugin>
      <artifactId>exec-maven-plugin</artifactId>
      <groupId>org.codehaus.mojo</groupId>
      <version>1.6.0</version>
      <executions>
        <execution>
          <id>Run Script</id>
          <phase>initialize</phase>
          <goals>
            <goal>exec</goal>
          </goals>
          <configuration>
            <executable>bootstrap.sh</executable>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

关于java - 在构建开始之前运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820230/

相关文章:

java - 在Java中搜索字符串中的一组字符串的有效方法

Java Swing : managing the "MousePressed" event on a component until it is released

maven - SonarQube - Java 堆错误

java - Maven 构建未在 Jenkins 上安排

java - 使用 List<?> 成员定义抽象泛型类

java - 有没有办法使用 JNI 从 Java 调用 C++ 的 STL 库?

java - 如何使用java跟踪系统平均负载

java - 从 maven 2 升级到 maven 3

java - mvn clean install 抛出错误 - 文件之前未被格式化。请在运行验证之前格式化文件并提交

java - Log4j 找不到记录器的附加程序 (org.apache.hadoop.util.shell)