[英]How to change globally maven default target directory?
我猜想更改 maven 構建的輸出目標目錄。 我見過的更多人問了大致相同的問題,我對其進行了一些改寫:
我希望我所有 m2 項目的所有生成文件都轉到特定的、不同於默認的構建目錄。 例如,如果我有項目 P1 和 P2,默認構建目錄是 P1/target 和 P2/target。 我想把它改成 P1/target 和 P2/target/或者更好的東西 - temp/P1/target 和 /temp/P2/target 。
我不想修改每一個 pom.xml。 我想把它作為一個全局的,我的環境特定的設置。
看起來有幾個 maven 插件的構建目錄路徑基於“project.build.directory”,所以我嘗試了諸如“m2 - Dproject.build.directory=/temp/target package”之類的東西,但這沒有效果。
有沒有人知道任何可行的方法來實現這一點 - 無論是通過 settings.xml 還是通過 -D 或其他一些全局方法?
如果您找到了-D
解決方案,那么很容易將其設為全局。 只需使用MAVEN_OPTS
環境變量。 Maven 會選擇它並將其應用於每個構建。
在 Windows 上(或使用 UI 設置)
set MAVEN_OPTS=-DsomeSystemProp=value
或在 Linux 上
export MAVEN_OPTS=-DsomeSystemProp=value
來源: https : //maven.apache.org/configure.html
注 1: .m2
目錄中的.mvn
目錄也是一個選項,但我從未在用戶級別使用過它。
注意2:人們往往忘記配置部分的約定優於配置的東西。 我已經看到硬編碼的target
目錄作為插件和pom.xml
文件中的輸出目錄。 請注意這一點,如果某些行為很有趣,請嘗試使用標准輸出目錄進行構建。
在一個舊項目中,我們使用 ramdisk 來加速構建。
我必須將M2_RAMDISK
環境變量設置為我的 ramdisk,其余部分已處理。
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>poc</groupId>
<artifactId>ramdisk</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<directory>${override.project.build.directory}</directory>
</build>
<properties>
<override.project.build.directory>target</override.project.build.directory>
</properties>
<profiles>
<profile>
<id>ramdisk</id>
<activation>
<property>
<name>env.M2_RAMDISK</name>
</property>
</activation>
<properties>
<override.project.build.directory>${env.M2_RAMDISK}/${project.groupId}/${project.artifactId}/${project.version}</override.project.build.directory>
</properties>
</profile>
</profiles>
</project>
覆蓋構建的輸出目錄是有風險的,因為某些工具只使用target
目錄而不是屬性值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.