Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
187 views
in Technique[技术] by (71.8m points)

java - Jenkins inject environment variable

In a Jenkins job I'm doing a couple of actions that reside in the pre-step build, such as executing a shell script. With the use of the Jenkins plugin "EnvInject" I want to inject environment variables into my maven build (Unit tests) so that those can be used inside my Java unit tests. Inside the shell script im doing something similar as:

echo "ip=$IP" >> unit-test.properties

While building Jenkins outputs the following:

[EnvInject] - Injecting environment variables from a build step.
[EnvInject] - Injecting as environment variables the properties file path 'unit-test.properties'
[EnvInject] - Variables injected successfully.

But the "ip" variable is not available inside my Java code (unit test). When I do a full print of both System.getProperties() and System.getenv() I do not see the "ip" enlisted.

Do I need to perform any special actions for maven to pass the variable to my Java code? Is something else wrong?

I'm pretty much stuck from this point onward, I do want to inject a key=value from a pre-step into my Java code.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

My solution:

Create a "Build a free-style software project".

  1. Jenkins > New Item > Build a free-style software project
  2. Add 1st step: Execute shell @ Build, and echo key=value pairs to a .properties file
  3. Add 2nd step: Inject environment variables, use the .properties file as defined in step 2
  4. Add 3rd step: Invoke top-level Maven targets

All custom environment variables are accessible with the key as defined in step #2. This was the only way I found to inject environment variables from shell to java.

As explained.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...