برنامه نویسی

نحوه انتشار یک آرتیفکت جاوا ساخته شده با Gradle در مخزن Nexus قسمت 1

Summarize this content to 400 words in Persian Lang
مخزن Nexus چیست؟

مخزن Nexus یک مدیر مخزن در دسترس عموم از Sonatype است که به سازماندهی، ذخیره و توزیع مصنوعات مورد استفاده در توسعه نرم افزار کمک می کند.

بسیاری از فرمت‌های مصنوع مانند Docker، Java، Go، PHP، Python و غیره را پشتیبانی می‌کند.

مصنوعات به زبان ساده به نتیجه فرآیند ساخت و بسته بندی نرم افزار اشاره دارد

اهمیت انتشار مصنوعات جاوا در یک مخزن مرکزی

انتشار مصنوعات جاوا در یک مخزن مرکزی، مانند Nexus، به چند دلیل یک روش مهم در توسعه نرم افزار مدرن است:

همکاری تیمی: در یک محیط تیمی، یک مخزن مرکزی به توسعه دهندگان اجازه می دهد تا کتابخانه ها، چارچوب ها یا هر کد قابل استفاده مجدد را به راحتی به اشتراک بگذارند.
ادغام با خطوط لوله CI/CD: انتشار در یک مخزن مرکزی اغلب یک مرحله کلیدی در خطوط لوله CI/CD است. مصنوعات را می توان پس از ساخت موفقیت آمیز به طور خودکار در یک مخزن مستقر کرد و آنها را بلافاصله برای آزمایش یا استقرار تولید در دسترس قرار داد.
کنترل نسخه: مخازن مرکزی به توسعه دهندگان اجازه می دهد چندین نسخه از یک مصنوع را مدیریت کنند. این امکان استفاده از نسخه های خاص را فراهم می کند و از سازگاری و ثبات در توسعه پروژه های مختلف اطمینان حاصل می کند.

پیش نیازها

کیت توسعه جاوا 17 نصب شده است.
Gradle نصب و پیکربندی شد.
دسترسی به مخزن Nexus (عمومی یا خصوصی).
درک اولیه از اسکریپت های ساخت Gradle (build.gradle).
یک نمونه EC2 یا هر سرویس ابری دیگری

Nexus را نصب کنید

بنابراین قبل از نصب نکسوس، نمونه EC2 را راه‌اندازی می‌کنیم که می‌توانیم نکسوس را نصب و اجرا کنیم.

برای نصب جاوا روی نمونه

apt install openjdk-17-jre-headless

وقتی این کار انجام شد، می‌توانید با استفاده از این دستور نکسوس را نصب کنید

cd /opt
wget https://download.sonatype.com/nexus/3/nexus-3.71.0-06-unix.tar.gz
ls

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به صورت یک توپ تار می آید، بنابراین باید آن را استخراج کنیم

tar -xvzf nexus-3.71.0-06-unix.tar.gz

اجرا کنید ls و شما باید این را ببینید

اجرا کنید ls -l برای دیدن فایل‌ها و مالکان، ریشه مالکیت فایل‌ها را دارد، بنابراین باید مالکیت را به یک کاربر Nexus بدهیم که ما ایجاد خواهیم کرد. بهترین تمرین این است که همیشه برای هر سرویسی که می خواهیم اجرا کنیم یک کاربر ایجاد کنیم.

بیایید یک کاربر نکسوس ایجاد کنیم و کاربر را به گروه نکسوس اضافه کنیم

adduser nexus
usermod -aG nexus nexus

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در حالی که هنوز در پوشه /opt هستید این دستور را اجرا کنید

chown -R nexus:nexus nexus-3.71.0-06
chown -R nexus:nexus sonatype-work

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پیکربندی نکسوس را تنظیم کنید تا به عنوان یک کاربر نکسوس اجرا شودvim nexus-3.71.0-06/bin/nexus.rc

این باید فایل را در ویرایش vim باز کند run_as_user=”nexus” مثل این

اکنون به کاربر نکسوس بروید و سرویس نکسوس را اجرا کنید

su – nexus
/opt/nexus-3.71.0-06/bin/nexus start

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از دستور زیر برای بررسی سرویس و پورت در حال اجرا استفاده کنید.

می بینیم که Nexus در پورت 8081 اجرا می شود، اگر پورت در نمونه EC2 شما مسدود شده باشد، باید گروه های امنیتی را برای اجازه دادن به ترافیک ورودی در آن پورت پیکربندی کنید.

بعد از آدرس IP عمومی نمونه خود و شماره پورت نکسوس مانند این استفاده کنید18.232.173.21:8081تا بتوانیم از مرورگر خود به رابط نکسوس دسترسی پیدا کنیم

برای دریافت رمز عبور پیش فرض برای رابط مدیریت به دایرکتوری زیر بروید

/opt/sonatype-work/nexus-3.71.0-06/
cat admin.password

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از آن برای ورود استفاده کنید، نام کاربری admin است

پس از ورود به سیستم رابط مدیریت باید به این شکل باشد

مخزن maven-releases جایی است که مصنوعاتی را که آزمایش شده اند و آماده استقرار در تولید هستند ذخیره می کنیم.
مخزن maven-snapshots جایی است که مصنوعاتی را که هنوز در مرحله توسعه و آزمایش هستند ذخیره می کنیم.

فرض کنید یک توسعه‌دهنده در شرکت ما می‌خواهد یک مصنوع در Nexus منتشر کند، ما نمی‌توانیم به او اجازه دهیم از حساب مدیریت استفاده کند، ما باید یک حساب برای آن کاربر ایجاد کنیم.

حرکت به Users برگه و create local user

به قسمت User roles بروید و یک نقش برای کاربر ایجاد شده ایجاد کنید

بهترین روش: ما نمی‌خواهیم که کاربر ما امتیازات زیادی داشته باشد، بنابراین فقط نقشی را اختصاص می‌دهیم که در آن کاربر نیاز به انجام وظیفه دارد.

ما در این مورد با gradle می سازیم، اما نقش همچنان مانند maven کار می کند، بنابراین نقش زیر را تنظیم می کنیم

اکنون آن نقشی را که ایجاد کرده ایم به کاربر اختصاص می دهیم

Gradle را با Nexus پیکربندی کنیدتنظیمات و پلاگین زیر را در فایل build.gradle اعمال کنید

group = ‘com.example’
version = ‘1.0.0-SNAPSHOT’
sourceCompatibility = ’17’
targetCompatibility = ’17’

apply plugin: ‘maven-publish’

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بلوک کد آرتیفکتی را که ما ساخته ایم منتشر می کند

publishing {
// The Artifacts we are going to upload
publications {
maven(MavenPublication) {
artifact(“build/libs/java-react-example-${version}.jar”) {
extension ‘jar’
}
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بلوک کد آدرسی را که قرار است در آن منتشر کنیم را مشخص می کند.این allowInsecureProtocol = trueبه انتشار اجازه می دهد بدون توجه به این واقعیت که ما از آن استفاده نمی کنیم کار کند https این credentials حساب کاربری را که در مخزن Nexus خود ایجاد کرده‌ایم، اعلام می‌کند، بنابراین به کاربر اجازه می‌دهد تا در مخزن منتشر کند.

// The Nexus repo that we will upload the Jar file to
repositories {
maven {
name ‘nexus’
url “http://[Your Public IP]:8081/repository/maven-snapshots/”
// So that it will all HTTP
allowInsecureProtocol = true
credentials {
username project.repoUser
password project.repoPassword
}
}
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید a ایجاد کنیم gradle.properties در فایل پروژه ما برای ذخیره راز کاربر ما

repoUser = oty
repoPassword = xxxxxxxxxxx

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد یک settings.gradle اگر وجود نداشت فایل کنید و نام پروژه را اضافه کنید

rootProject.name=”java-react-example”

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر قبلاً پروژه را اجرا نکرده اید، آن را منتشر کنید

gradle build
gradle publish

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون می توانیم به مخزن Nexus خود برویم و مصنوعات انتشار خود را مشاهده کنیم

خواندن مبارک!!!لطفا اگر مقاله را دوست داشتید لایک و فالو کنید.متشکرم

مخزن Nexus چیست؟

مخزن Nexus یک مدیر مخزن در دسترس عموم از Sonatype است که به سازماندهی، ذخیره و توزیع مصنوعات مورد استفاده در توسعه نرم افزار کمک می کند.

بسیاری از فرمت‌های مصنوع مانند Docker، Java، Go، PHP، Python و غیره را پشتیبانی می‌کند.

مصنوعات به زبان ساده به نتیجه فرآیند ساخت و بسته بندی نرم افزار اشاره دارد

اهمیت انتشار مصنوعات جاوا در یک مخزن مرکزی

انتشار مصنوعات جاوا در یک مخزن مرکزی، مانند Nexus، به چند دلیل یک روش مهم در توسعه نرم افزار مدرن است:

  1. همکاری تیمی: در یک محیط تیمی، یک مخزن مرکزی به توسعه دهندگان اجازه می دهد تا کتابخانه ها، چارچوب ها یا هر کد قابل استفاده مجدد را به راحتی به اشتراک بگذارند.

  2. ادغام با خطوط لوله CI/CD: انتشار در یک مخزن مرکزی اغلب یک مرحله کلیدی در خطوط لوله CI/CD است. مصنوعات را می توان پس از ساخت موفقیت آمیز به طور خودکار در یک مخزن مستقر کرد و آنها را بلافاصله برای آزمایش یا استقرار تولید در دسترس قرار داد.

  3. کنترل نسخه: مخازن مرکزی به توسعه دهندگان اجازه می دهد چندین نسخه از یک مصنوع را مدیریت کنند. این امکان استفاده از نسخه های خاص را فراهم می کند و از سازگاری و ثبات در توسعه پروژه های مختلف اطمینان حاصل می کند.

پیش نیازها

  • کیت توسعه جاوا 17 نصب شده است.
  • Gradle نصب و پیکربندی شد.
  • دسترسی به مخزن Nexus (عمومی یا خصوصی).
  • درک اولیه از اسکریپت های ساخت Gradle (build.gradle).
  • یک نمونه EC2 یا هر سرویس ابری دیگری

Nexus را نصب کنید

بنابراین قبل از نصب نکسوس، نمونه EC2 را راه‌اندازی می‌کنیم که می‌توانیم نکسوس را نصب و اجرا کنیم.

این یک نمونه EC2 است

برای نصب جاوا روی نمونه

apt install openjdk-17-jre-headless

وقتی این کار انجام شد، می‌توانید با استفاده از این دستور نکسوس را نصب کنید

cd /opt
wget https://download.sonatype.com/nexus/3/nexus-3.71.0-06-unix.tar.gz
ls
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به صورت یک توپ تار می آید، بنابراین باید آن را استخراج کنیم

tar -xvzf nexus-3.71.0-06-unix.tar.gz

اجرا کنید ls و شما باید این را ببینید

ترمینال

اجرا کنید ls -l برای دیدن فایل‌ها و مالکان، ریشه مالکیت فایل‌ها را دارد، بنابراین باید مالکیت را به یک کاربر Nexus بدهیم که ما ایجاد خواهیم کرد. بهترین تمرین این است که همیشه برای هر سرویسی که می خواهیم اجرا کنیم یک کاربر ایجاد کنیم.

بیایید یک کاربر نکسوس ایجاد کنیم و کاربر را به گروه نکسوس اضافه کنیم

adduser nexus
usermod -aG nexus nexus
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در حالی که هنوز در پوشه /opt هستید این دستور را اجرا کنید

chown -R nexus:nexus nexus-3.71.0-06
chown -R nexus:nexus sonatype-work
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ترمینال سریع

پیکربندی نکسوس را تنظیم کنید تا به عنوان یک کاربر نکسوس اجرا شود
vim nexus-3.71.0-06/bin/nexus.rc

این باید فایل را در ویرایش vim باز کند run_as_user="nexus" مثل این

اکنون به کاربر نکسوس بروید و سرویس نکسوس را اجرا کنید

su - nexus
/opt/nexus-3.71.0-06/bin/nexus start
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از دستور زیر برای بررسی سرویس و پورت در حال اجرا استفاده کنید.
ترمینال نت استات

می بینیم که Nexus در پورت 8081 اجرا می شود، اگر پورت در نمونه EC2 شما مسدود شده باشد، باید گروه های امنیتی را برای اجازه دادن به ترافیک ورودی در آن پورت پیکربندی کنید.

بعد از آدرس IP عمومی نمونه خود و شماره پورت نکسوس مانند این استفاده کنید
18.232.173.21:8081
تا بتوانیم از مرورگر خود به رابط نکسوس دسترسی پیدا کنیم

رابط نکسوس

برای دریافت رمز عبور پیش فرض برای رابط مدیریت به دایرکتوری زیر بروید

/opt/sonatype-work/nexus-3.71.0-06/
cat admin.password
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

از آن برای ورود استفاده کنید، نام کاربری admin است

پس از ورود به سیستم رابط مدیریت باید به این شکل باشد

پیوند مخزن

  • مخزن maven-releases جایی است که مصنوعاتی را که آزمایش شده اند و آماده استقرار در تولید هستند ذخیره می کنیم.
  • مخزن maven-snapshots جایی است که مصنوعاتی را که هنوز در مرحله توسعه و آزمایش هستند ذخیره می کنیم.

فرض کنید یک توسعه‌دهنده در شرکت ما می‌خواهد یک مصنوع در Nexus منتشر کند، ما نمی‌توانیم به او اجازه دهیم از حساب مدیریت استفاده کند، ما باید یک حساب برای آن کاربر ایجاد کنیم.

حرکت به Users برگه و create local user

برگه کاربران Nexus

فرم کاربر Nexus

به قسمت User roles بروید و یک نقش برای کاربر ایجاد شده ایجاد کنید

نقش کاربر

بهترین روش: ما نمی‌خواهیم که کاربر ما امتیازات زیادی داشته باشد، بنابراین فقط نقشی را اختصاص می‌دهیم که در آن کاربر نیاز به انجام وظیفه دارد.

فرم نقش

ما در این مورد با gradle می سازیم، اما نقش همچنان مانند maven کار می کند، بنابراین نقش زیر را تنظیم می کنیم

نقش تعیین کنید

اکنون آن نقشی را که ایجاد کرده ایم به کاربر اختصاص می دهیم

تعیین نقش

Gradle را با Nexus پیکربندی کنید
تنظیمات و پلاگین زیر را در فایل build.gradle اعمال کنید

group = 'com.example'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '17'
targetCompatibility = '17'

apply plugin: 'maven-publish'
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بلوک کد آرتیفکتی را که ما ساخته ایم منتشر می کند

publishing {
//  The Artifacts we are going to upload
    publications {
        maven(MavenPublication) {
            artifact("build/libs/java-react-example-${version}.jar") {
                extension 'jar'
            }
        }
    }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بلوک کد آدرسی را که قرار است در آن منتشر کنیم را مشخص می کند.
این allowInsecureProtocol = true
به انتشار اجازه می دهد بدون توجه به این واقعیت که ما از آن استفاده نمی کنیم کار کند https
این credentials حساب کاربری را که در مخزن Nexus خود ایجاد کرده‌ایم، اعلام می‌کند، بنابراین به کاربر اجازه می‌دهد تا در مخزن منتشر کند.

// The Nexus repo that we will upload the Jar file to
    repositories {
        maven {
            name 'nexus'
            url "http://[Your Public IP]:8081/repository/maven-snapshots/"
//        So that it will all HTTP
            allowInsecureProtocol = true
            credentials {
                username project.repoUser
                password project.repoPassword
            }
        }
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید a ایجاد کنیم gradle.properties در فایل پروژه ما برای ذخیره راز کاربر ما

repoUser = oty
repoPassword = xxxxxxxxxxx
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد یک settings.gradle اگر وجود نداشت فایل کنید و نام پروژه را اضافه کنید

rootProject.name="java-react-example"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تنظیمات gradle

اگر قبلاً پروژه را اجرا نکرده اید، آن را منتشر کنید

gradle build
gradle publish
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

gradle build

کوزه بساز

gradle انتشار

اکنون می توانیم به مخزن Nexus خود برویم و مصنوعات انتشار خود را مشاهده کنیم

مخزن انتشار

خواندن مبارک!!!
لطفا اگر مقاله را دوست داشتید لایک و فالو کنید.
متشکرم

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا