programing

Maven 환경 변수

yoursource 2022. 9. 3. 16:57
반응형

Maven 환경 변수

프로젝트를 Eclipse에서 Maven으로 포팅했습니다.프로젝트를 실행하기 위해 환경변수를 설정할 필요가 있습니다.

Eclipse에서 "Run -> Run configurations"로 이동하여 "Environment" 탭에서 "WSNShEL_HOME"을 "conf" 값으로 설정합니다.

요?Maven

명령줄에 전달하면 됩니다.

mvn -DmyVariable=someValue install

[갱신] 파라미터의 순서는 중요합니다.명령어 앞에 옵션을 지정해야 합니다.[/업데이트]

파일POM에서 를 POM으로 지정할 수 있습니다.${myVariable}및 환경변수는 다음과 같습니다.${env.myVariable}(수정해 주신 코멘트 분들께 감사드립니다.)

갱신 2

시스템 변수를 테스트에 전달하려고 합니다.테스트에 Surefire 플러그인을 사용하는 경우, 가장 좋은 방법은 POM 내에서 필요한 시스템 변수를 지정하는 것입니다.plugins :

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            ...
            <configuration>
                ...
                <systemPropertyVariables>
                    <WSNSHELL_HOME>conf</WSNSHELL_HOME>
                </systemPropertyVariables>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>

-D성질은 신뢰할 수 없습니다(일식과 함께 작동하는 이유를 알 수 없음).명령줄에서 maven을 사용할 경우 argLine 속성을 사용하여 속성을 래핑합니다.이것으로 테스트에 합격합니다.

mvn -DargLine="-DWSNSHELL_HOME=conf" test

System.getProperty코드를 읽을 수 있습니다.의 차이에 대해 글을 봐주세요.System.getenv ★★★★★★★★★★★★★★★★★」Sytem.getProperty.

maven 명령어는 bash 스크립트로 랩할 수 있습니다.

#!/bin/bash

export YOUR_VAR=thevalue
mvn test
unset YOUR_VAR

Maven 환경변수의 경우 다음과 같이 설정할 수 있습니다.

http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#environmentVariables http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#environmentVariables

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    ...
    <configuration>
        <includes>
            ...
        </includes>
        <environmentVariables>
            <WSNSHELL_HOME>conf</WSNSHELL_HOME>
        </environmentVariables>
    </configuration>
</plugin>

하나의 은 '보다 낫다'로 설정하는 입니다.MAVEN_OPTS (''환경변수')${user.home}/.mavenrc (오류)%HOME%\mavenrc_pre.bat★★★★★★★★★★★★★★★★★★★★★」

Maven 3.3.1에서는 mvn 명령줄 파라미터를 설정할 수 있는 새로운 방법이 있습니다.이것이 실제로 필요한 경우:

  • ${maven.projectBasedir}/.mvn/maven.config
  • ${maven.projectBasedir}/.mvn/jvm.config

@Kevin의 답변에 따라 아래는 maven sure-fire 플러그인으로 환경변수를 설정하는 데 도움이 되었습니다.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
    <environmentVariables>
        <WSNSHELL_HOME>conf</WSNSHELL_HOME>
    </environmentVariables>
</configuration>

properties-maven-plugin이라는 maven 플러그인이 있습니다.이 플러그인은 목표를 제공합니다.set-system-properties시스템 변수를 설정합니다.이러한 모든 속성을 포함하는 파일이 있는 경우 특히 유용합니다.따라서 속성 파일을 읽고 시스템 변수로 설정할 수 있습니다.

코드 추가:

System.getProperty("WSNSHELL_HOME")

maven 명령에서 값 속성을 수정하거나 추가합니다.

mvn clean test -DargLine=-DWSNSHELL_HOME=yourvalue

Eclipse에서 실행하려면 디버깅/실행 구성에 VM 인수를 추가합니다.

  • 실행 -> 구성 실행으로 이동합니다.
  • 탭 인수 선택
  • VM 인수 추가 섹션

-DWSN셸_HOME=고객의 가치

이미지 예시 참조

POM을 변경할 필요가 없습니다.

일부 인수는 를 통해 전달할 수 있습니다._JAVA_OPTIONS변수.

예를 들어 다음과 같은 메이븐프록시 플래그 변수를 정의합니다.

_JAVA_OPTIONS="-Dhttp.proxyHost=$http_proxy_host -Dhttp.proxyPort=$http_proxy_port -Dhttps.proxyHost=$https_proxy_host -Dhttps.proxyPort=$http_proxy_port"

그리고 나서mvn clean install(자동으로 픽업됩니다)._JAVA_OPTIONS).

저는 이 놀라운 도구의 사용을 제안합니다.프로젝트에 cd를 삽입하면 환경변수를 삽입할 수 있습니다.다음의 스텝이 유효했습니다.

.envrc 파일

source_up
dotenv

.env 파일

_JAVA_OPTIONS="-DYourEnvHere=123"

글로벌 Java 옵션을 변경하는 경우도 있기 때문에 _JAVA_OPTIONS를 정의하는 것은 좋지 않은 생각입니다.대신 Maven에 의해 자동으로 선택되지만 _JAVA_OPTS와 같은 모든 기능을 덮어쓰지는 않는 MAVEN_OPTS 환경 변수(예: IDE VM 옵션)를 정의합니다.

MAVEN_OPTS="-DmyVariable=someValue"

언급URL : https://stackoverflow.com/questions/5510690/environment-variable-with-maven

반응형