java - 如何在通常的 Maven clean 阶段之外删除项目文件夹

标签 java maven build automation

这可能听起来有点不对劲,但这就是我想要的;

我有一个项目,它在我的目标目录中生成文件(每个普通项目也是如此)。我已使用以下命令将 Maven clean 配置为在每个构建中执行。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>auto-clean</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    <plugins>
<build>

我在目标之外还有几个其他文件夹(我故意选择),用于存储日志和测试报告。我不想在每次运行中都清理它们,因为我希望它们在一段时间内进行引用。

该项目大致如下所示。

Project
|--src/main/java
|--src/test/java
|--target
|--logs*
+--reports*

这里的日志和报告是我想要防止在每次运行中被删除的文件夹。 我能够管理报告和日志文件夹在每次运行中不会被删除的部分。 (非常简单,不要提及构建中的两个文件夹)

但是,我还需要有一个maven命令来偶尔删除这两个特殊文件夹。我怎样才能做到这一点?

最佳答案

您可以考虑添加 profile ,您可以在其中设置不同的clean流程:

<profiles>
  <profile>
  <id>cleanLogs</id>

  <build>...</build>

  </profile>
</profiles>

使用 mvn clean -PcleanLog 调用它会调用特定的构建过程。
另请参阅this tutorial on maven profiles .

关于java - 如何在通常的 Maven clean 阶段之外删除项目文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46188799/

相关文章:

node.js - jhipster运行时出错

c# - Unity - 奇怪的错误,构建与构建和运行

java - 将字符串与枚举值进行比较的正确方法是什么?

java - JPA 实体和关系 OneToMany、ManyToOne、ManyToMany - 良好实践

java - 如何在 Spring Boot 中使用注释配置 View 解析器?

java - 直接从 Java 保存 H2O 模型

maven - 在 Maven 多模块项目中,如何禁用一个子项目中的插件?

eclipse - 将 jfxrt.jar 添加到标准 Eclipse 构建路径

c - 使用 QT Creator,如何制作不需要在目标平台上安装 .dll 的 Windows 可执行文件?

java - 带有 AWS Java SDK 的 JsonErrorUnmarshallerV2 的 NoClassDefFoundError