Maven:如何从命令行更改到目标目录的路径?
(在某些情况下,我想使用另一个目标目录)
Maven:如何从命令行更改到目标目录的路径?
(在某些情况下,我想使用另一个目标目录)
target/
内置于中,并且我也希望能够从命令行进行构建而又不会使这两个过程相互影响。
src/it/my-integration-test-project/pom.xml
从命令行构建集成测试,而无需target
在源代码树中创建目录,当集成测试作为包含项目的验证阶段的一部分运行时,该目录将被复制。
Answers:
您应该使用配置文件。
<profiles>
<profile>
<id>otherOutputDir</id>
<build>
<directory>yourDirectory</directory>
</build>
</profile>
</profiles>
然后使用您的个人资料开始Maven
mvn compile -PotherOutputDir
如果您真的想从命令行定义目录,则可以执行以下操作(完全不建议这样做):
<properties>
<buildDirectory>${project.basedir}/target</buildDirectory>
</properties>
<build>
<directory>${buildDirectory}</directory>
</build>
像这样编译:
mvn compile -DbuildDirectory=test
那是因为您不能使用来更改目标目录 -Dproject.build.directory
-Dproject.build.directory
要使用这些选项,则将可用;这是解决该-Dproject.build.directory
问题的方法。加上第一个解决方案,您可以指定路径一劳永逸的,你不能这样做的目录名拼写错误,当你启动命令行,你可以方便的使用,即使你从一个IDE等工作,该解决方案
settings.xml
而不是命令行来激活配置文件,以实现更大的可移植性?
Colin是正确的,应该使用配置文件。但是,他的答案将概要文件中的目标目录硬编码。另一种解决方案是添加一个配置文件,如下所示:
<profile>
<id>alternateBuildDir</id>
<activation>
<property>
<name>alt.build.dir</name>
</property>
</activation>
<build>
<directory>${alt.build.dir}</directory>
</build>
</profile>
这样做的结果是将生成目录更改为alt.build.dir属性提供的内容,该属性可以在POM中,用户设置或命令行中提供。如果该属性不存在,则编译将在常规目标目录中进行。
-Dalt.build.dir=~/mytarget
等同于-D
用于其他属性?