ভেরিয়েবল বিটউইন গ্রোভি ফাইলগুলি পাস করা


9

আমি জেনকিন্সে ডিএসএল প্লাগইন দ্বারা অনেক কাজ পরিচালনা করছি। এই প্লাগইনটি .groovy সংজ্ঞাগুলি ব্যবহার করছে তাই আমি মনে করি কেউ জেনকিনস ব্যবহার না করে তবে গ্রোভি ব্যবহার করে এমনকি সহায়তা করতে সক্ষম হয়।

সাধারণত, আমি একটি অতিরিক্ত ফাইল তৈরি করতে চাই, এটি গ্রোভী ফাইল, জেএসএন বা ওয়াইএএমএল হতে পারে, যাই হোক না কেন। সেই ফাইলটি আমার .groovy ফাইলের সাথে সংযুক্ত করার সম্ভাবনা গুরুত্বপূর্ণ।

সেই ফাইলটিতে আমি ভেরিয়েবলগুলি সংজ্ঞায়িত করছি (কেবলমাত্র স্ট্রিং) উদাহরণস্বরূপ আইপি বা অন্যান্য স্টাফের জন্য।

ip_gitlab: 1.2.3.4
default_user: admin

আমার গ্রুভি ফাইলগুলিতে, আমি এই ভেরিয়েবলগুলি ব্যবহার করতে সক্ষম হতে চাই।

এই পদ্ধতির গ্রোভিতে সম্ভব?


অবশ্যই এটা সম্ভব। উদাহরণস্বরূপ এখানে গ্রোভিআং.এল.আরোগুলি / জসন এইচটিএমএল রয়েছে
স্মেল্ম

ডিএসএল প্লাগইনে অতিরিক্ত শ্রেণিপথ সংজ্ঞা দেওয়া সম্ভব হলে। তারপরে ফোল্ডারে রাখুন যা আপনি ক্লাসপথ গ্রোভী ফাইল (গুলি) এর মতো যুক্ত করবেন class GLOBAL{ def a=111; def b=222; }। তারপরে কোডে আপনার এটি অ্যাক্সেস করতে সক্ষম হওয়া উচিতGLOBAL.a
ড্যাজেট

@ ড্যাজেট আপনার লেখার সময় আমি চেষ্টা করছিলাম এবং সর্বদা আমার ত্রুটি হয়েছিল: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.runtime.InvokerHelper$1@641eff69' with class 'org.codehaus.groovy.runtime.InvokerHelper$1' to class 'javaposse.jobdsl.dsl.JobParent' আপনার ক্লাসটি প্রক্রিয়াকরণের সময় এই ত্রুটিটি ঘটে
rafal1337

আমি ভুলে গেছি . প্রতিটি সংজ্ঞায়িত ভেরিয়েবলের জন্য staticউপসর্গ থাকতে হবে । class GLOBAL{ static def a=111; static def b=222; }। তবে ত্রুটিটি আপনার কাছে অদ্ভুত। আপনি কীভাবে ঘোষিত ভেরিয়েবলটি এবং কীভাবে আপনি এটি DSL এ ব্যবহার করতে পারেন তা প্রদর্শন করতে পারেন।
ড্যাজেট

1. DSL আমার কনফিগারেশন postimg.cc/TLHK5k6h DSL প্রক্রিয়াকরণের সময় 2. ত্রুটি postimg.cc/21F37jDs
rafal1337

উত্তর:


3

@ জেবারুচ লিখেছেন হিসাবে আমি একটি সম্পত্তি ফাইল ব্যবহার করার পরামর্শ দিই

ip_gitlab=1.2.3.4
default_user=admin

এবং এটি লোড করুন

Properties properties = new Properties()
File propertiesFile = new File('test.properties')
propertiesFile.withInputStream {
    properties.load(it)
}

তারপরে আপনি এটি ব্যবহার করতে পারেন, উদাহরণ হিসাবে আইপি পান:

def ipPropertyName= 'ip_gitlab'
properties."$ipPropertyName"

2
এটি অন্য পোস্টের একটি ন্যূনতম গুণযুক্ত অনুলিপি; আপনি কমপক্ষে রেফারেন্সিং নির্দেশিকা অনুসরণ করতে এবং লেখকের নাম রাখতে চান want
মার্টিজন পিটারস

জেনকিন্স ডিএসএল-এ অবিস্মরণীয়ভাবে কাজ করে না, বৈশিষ্ট্যযুক্ত ফাইলটি খুঁজে পাওয়া যায় না, তবে এই ফাইলটি একই ফোল্ডার ...FATAL: test.properties (No such file or directory) java.io.FileNotFoundException: test.properties (No such file or directory)
rafal1337

@ rafal1337 আপনি কি ফাইলের আংশিক / সম্পূর্ণ পথ ব্যবহার করার চেষ্টা করেছেন?
ব্যবহারকারী7294900

@ user7294900 হ্যাঁ, আমি একাধিক পথ চেষ্টা করছিলাম তবে ইতিবাচক প্রভাব ছাড়াই।
rafal1337

@ রাফাল 1337 readFile জেনকিনস.আইও
ডক /

2

গ্রোভি ফাইল তৈরি করুন এবং কিছু সাধারণ তথ্য এবং ব্যবহার সংজ্ঞায়িত করুন load

উদাহরণস্বরূপ, হ্যালোকনফ (গ্রোভির লিখিত)

build_name = 'hello'

build_config = [
    'git': 'your git repository',
    'build_job': ['bulid_a', 'build_b']
]

এবং এটি ব্যবহার করে load

load 'hello.conf'

println(build_name)
for (job in build_config['build_job']) {
    build job: job
}

দেখতে ভাল লাগছে তবে জেনকিন্সের ডিএসএল প্লাগইনে কাজ করে না:ERROR: (pipeline.groovy, line 1) No signature of method: pipeline.load() is applicable for argument types: (java.lang.String) values: [a_test.groovy]Possible solutions: job(java.lang.String), find(), folder(java.lang.String), job(java.lang.String, groovy.lang.Closure), find(groovy.lang.Closure), wait()
রাফাল 1337

2

আপনি যদি জেনকিন্সের নির্দিষ্ট উত্তর চান: জেনকিন্সে একটি কনফিগার ফাইল সরবরাহকারী প্লাগইন রয়েছে

আপনি পরিচালিত ফাইলগুলির মাধ্যমে কনফিগার / সম্পত্তি ফাইল সংরক্ষণ করতে পারেন। জেনকিনস> পরিচালিত ফাইলগুলিতে যান এবং একটি নতুন ফাইল তৈরি করুন। এটি .গ্রোভি, .জসন, এক্সএমএল এবং আরও অনেককে সমর্থন করে।

একবার আপনার এটি হয়ে গেলে, আপনি কনফিগার ফাইল সরবরাহ করুন চেকবক্স ব্যবহার করে কোনও কাজের ভিতরে উল্লিখিত ফাইলটি লোড করতে পারেন যা ফাইলটি একটি এনভি ভেরিয়েবলের স্বয়ংক্রিয়ভাবে লোড করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.