EclipseからMavenにプロジェクトを移植しました。プロジェクトを機能させるには、環境変数を設定する必要があります。
Eclipseでは、「実行->実行構成」に移動し、「環境」タブで「WSNSHELL_HOME」を値「conf」に設定します。
Mavenでこれを行うにはどうすればよいですか?
どうもありがとうございました!
次のようにコマンドラインで渡すことができます
mvn -DmyVariable=someValue install
[更新]パラメーターの順序は重要であることに注意してください-オプションの前に指定する必要がありますコマンド。[/ Update]
POMファイル内では、システム変数(コマンドラインまたはpomで指定)を${myVariable}
として、環境変数を${env.myVariable}
として参照できます。 (訂正してくれたコメント者に感謝します)
OK、システム変数をテストに渡します。 -私が推測するように、テストに 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>
properties-maven-plugin というmavenプラグインがあります。これは、システム変数を設定するための目標set-system-properties
を提供します。これは、これらのすべてのプロパティを含むファイルがある場合に特に便利です。したがって、プロパティファイルを読み取り、システム変数として設定できます。
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#environmentVariableshttp://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
(またはWindowsでは${user.home}/.mavenrc
)に%HOME%\mavenrc_pre.bat
(または他の環境変数)を設定することです。
Maven 3.3.1以降 mvnコマンドラインパラメーターを設定する新しい可能性 があります。これが実際に必要な場合:
${maven.projectBasedir}/.mvn/maven.config
${maven.projectBasedir}/.mvn/jvm.config
あなたのコードに追加:
System.getProperty("WSNSHELL_HOME")
Mavenコマンドから値プロパティを変更または追加します。
mvn clean test -DargLine=-DWSNSHELL_HOME=yourvalue
Eclipseで実行する場合は、VM引数をデバッグ/実行構成に追加します
-DWSNSHELL_HOME = yourvalue
pOMを変更する必要はありません