我有一个Maven项目,其中包括一个Maven插件(Liquibase Maven插件),它公开了不同的目标。其中两个目标(update和diff)需要在它们之间发生冲突的不同参数(因为两者的语义不同),因此我需要在两个目标执行中赋予Maven不同的属性。
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<!-- This configuration is used for every goal except "diff" -->
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
</configuration>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>diff</goal>
</goals>
<!-- This configuration is used for the "diff" goal -->
<configuration>
<propertyFile>src/main/resources/liquibaseDiff.properties</propertyFile>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
</configuration>
</execution>
</executions>
</plugin>
有没有办法在Maven中为不同的目标传递不同的配置?
插件的配置可以在两个不同的位置完成:
下的
元素完成的。此配置由所有执行继承。
下的
元素完成的。在您的示例中,考虑以下POM:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<!-- put the configuration here that is common to all executions -->
</configuration>
<executions>
<execution>
<id>diff</id>
<goals>
<goal>diff</goal>
</goals>
<configuration>
<!-- put the specific configuration of the diff goal here, this will inherit from the global configuration -->
</configuration>
</execution>
<execution>
<id>update</id>
<goals>
<goal>update</goal>
</goals>
<configuration>
<!-- put the specific configuration of the update goal here, this will inherit from the global configuration -->
</configuration>
</execution>
</executions>
</plugin>
mvn liquibase:diff@diff
上面命令中的@diff
引用了POM中配置的执行的唯一
。
将您的执行绑定到Maven生命周期的特定阶段,并让它与生命周期的正常流程一起执行。这通常是首选的解决方案。在上面的示例中,例如,我们可以在diff
执行的执行块中添加一个
;然后Maven将在构建过程中运行测试阶段时执行它。
问题内容: 我正在使用不同的Maven配置文件将我的应用程序部署到不同的环境。(使用weblogic-maven-plugin,但是我认为这并不重要) 在应用程序中,我使用Spring Web Services。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。该属性文件将在Mavens软件包阶段写入(或复制)。
我正在从事两个不同的项目,都使用不同的maven文件 当我在项目之间切换时,它会重新下载存储库文件夹中的所有maven依赖项,删除以前项目的依赖项 是否有任何方法可以使用两个,并为两个项目维护不同的存储库。
问题内容: 我目前正在将构建过程从Ant迁移到Maven。我们的应用程序已部署到许多不同的客户,每个客户都有一组独特的依赖项和配置。我可以实现不同的配置文件以对它们进行建模,并从中构建所需的战争。但是,这是一个在编译时发生的过程。 每个版本都标记为SVN,并已上传到我们的内部Nexus存储库。我希望能够采用定义的发行版并根据配置文件对其进行重构。有没有办法做这样的事情?除了个人资料外,我还应该使用
我有两个不同的工作(实际上更多,但为了简单起见,假设2)。每个作业可以与另一个作业并行运行,但同一作业的每个实例应该顺序运行(否则实例将共享彼此的资源)。 基本上,我希望这些作业中的每一个都有自己的作业实例队列。我想我可以使用两个不同的线程池作业启动程序(每个都有一个线程),并将一个作业启动程序与每个作业相关联。 在从Spring Batch Admin web UI中启动作业时,是否有一种方法可
我的步骤事件有以下字段:
问题内容: 假设我有类似的课程: 我想在A上过滤标准,在不同的子类属性上过滤两个过滤器,例如: 我想要做的是使用“或”子句将criteriaB和criteriaC组合在一起,例如: 我该怎么做?我在这里对API稍作绊脚石。 问题答案: 使用别名代替嵌套条件: