我有一个pom文件,其中某些依赖项的版本号依赖于pom文件设置中指定的项目版本属性。我可以通过命令行覆盖它吗?如果可以,如何操作?
说来话长:
我们目前正在将我们的项目转换为maven,但我们还没有完全实现。有多个模块仍然没有使用maven构建,因此是我们项目中的依赖项(它们通过ant构建到jar中)。发布后,我们希望构建所有这些jar,并包含与父项目相同的版本号。对于发布,执行两个步骤(直到我们可以使用maven获取所有内容)
在第二步中,命令行参数用于指定版本:
mvn release:prepare -DreleaseVersion=12.12.4.0 -DdevelopmentVersion=12.12.4.1-SNAPSHOT -Dtag=iv-12.12.4.0
我希望使用指定的版本更新pom文件。但是,当运行此命令时,pom文件中的版本(12.12.4.0-SNAPSHOT)仍在使用中。这会导致“检查快照的依赖项和插件”步骤失败,我需要从maven version属性解析仍然使用12.12.4.0-SNAPSHOT版本的jar。
这使我想到了最初的问题,即如何覆盖它,使版本解析为命令行上指定的版本。可以让我越过这一点的附加问题是:如何允许maven release插件在检查之前更新pom文件?如何跳过快照检查(不可取)
我可以在pom文件中创建一个可以覆盖的属性,但是我必须在pom文件的两个地方维护版本号。
思潮?
这是另一个选项:
<Logger name="com.mypackagename" level="${env:LOG_LEVEL:-error}" additivity="false">
<AppenderRef ref="Console-Appender"/>
</Logger>
${env:LOG_LEVEL:-error}表示env=环境变量,LOG_LEVEL=env名称,-error=默认级别错误。
将参数从命令行直接放入pom,例如:
mvn干净安装-Dtestng.version=6.3.1
例子:
<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.test</groupId>
<artifactId>test</artifactId>
<version>1.0.0</version>
<name>test</name>
<properties>
<testng.version>6.4</testng.version>
</properties>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
如果你正常运行它,将使用测试版本6.4。但是如果你像这样运行它:mvn净安装-Dtestng.version=6.3.1
将使用测试版本6.3.1。
请参阅在詹金斯中设置 Maven 参数
问题内容: 我对使用Maven时通过命令行为某些单元测试设置属性的正确方法感到困惑。有很多问题(例如,在不设置MAVEN_OPTS环境变量的情况下指定Maven内存参数,是否可以通过命令行将jvmargs传递给maven,如何为Junit单元测试设置JVM参数?)碰到这个问题,但是没有人正在寻找我的答案。 我想将属性设置为某个值,但是我不想设置环境变量。 我可以使用以下属性在我的pom文件中配置s
我有几个POJO,这将有一个货币数额。我的想法是创建一个通用对象(由货币和值组成),然后每当我想在我的POJOs中表示一个货币金额时,就会使用它: 由于将在多个POJO中使用,我无法用注释和属性,因为在所有情况下,列名并不总是相同的。有没有办法注释属性(如上例中的)以提供和属性的列名,以便jOOQ在映射/取消映射POJO时理解它们,类似于Hibernate解释请问?
我想覆盖我在Quarkus应用程序的配置文件中配置的属性。 我怎样才能做到这一点?
我正在尝试从ADB命令获取设备属性。我如何能够通过运行示例android应用程序获得这些值。我多么希望使用adb shell命令本身使我的生活更轻松。下面是我将完成示例应用程序的方法,但我需要相应的adb命令 设备制造商 *请注意,我的设备没有根目录,我不知道如何根目录设备以获取这些值:-)* 但是,我可以得到操作系统版本。但是我想要整数形式的SDK版本。我想要18个代替4.2个。2.
问题内容: 类 两次作为两个不同的属性嵌入其中:和 在使用Persistence生成数据库架构时,应该分别提供两列。而是抛出一个异常: org.hibernate.MappingException:实体映射中的重复列:事件列:代码 如何覆盖每个属性的默认列名? 问题答案: 使用,这是一个示例 在您的情况下,它看起来像这样
假设我的目标如下: 我也有一个列表: 我想用一些“默认值”覆盖“foo-value”和“baz-value”(列表中出现的键的值)。所以我有: 如果我有一个不同的对象,比方说 我不想添加任何默认值,所以spread运算符不适用于我。