يمكن إضافة مخضرم مستودعات في سطر الأوامر ؟
-
09-06-2019 - |
سؤال
أنا على علم أنني يمكن أن تضيف مخضرم مستودعات جلب تبعيات في ~/.m2/settings.xml.ولكن هل من الممكن لإضافة مستودع باستخدام سطر الأوامر ، شيء من هذا القبيل:
mvn install -Dmaven.repository=http://example.com/maven2
السبب في أنني أريد أن أفعل هذا لأنني باستخدام التكامل المستمر أداة حيث يجب السيطرة الكاملة على خيارات سطر الأوامر فإنه يستخدم للاتصال مخضرم ، ولكن إدارة settings.xml المستخدم الذي يتم تشغيل أداة التكامل هو في قليلا من المتاعب.
المحلول
يمكنك أن تفعل هذا ولكن ربما كنت أفضل حالا في بوم كما قال آخرون.
على سطر الأوامر يمكنك تحديد الملكية المحلية مستودع مستودع آخر البعيد مستودعات.مستودع بعيد سوف يكون كل الإعدادات الافتراضية على الرغم من
المثال أدناه يحدد اثنين من مستودعات النائية و مخصص المخزون المحلي.
mvn package -Dmaven.repo.remote=http://www.ibiblio.org/maven/,http://myrepo
-Dmaven.repo.local="c:\test\repo"
نصائح أخرى
واحدة من أهداف مخضرم لا مشروع نموذج كائن (بوم) هو الاستيلاء على جميع المعلومات اللازمة موثوق إنتاج قطعة أثرية ، وبالتالي تمرير الإعدادات التي تؤثر على قطعة أثرية إنشاء بقوة.
لتحقيق الهدف الخاص بك ، يمكنك الاختيار في مستوى المستخدم settings.xml الملف مع كل مشروع و استخدام-s (أو إعدادات) خيار تمرير ذلك إلى بناء.
أنا لست متأكدا مما إذا كان يمكنك أن تفعل ذلك باستخدام سطر الأوامر.يمكنك من ناحية أخرى إضافة مستودعات في pom.xml كما في المثال التالي.باستخدام هذا النهج لا تحتاج إلى تغيير ~/.m2/settings.xml الملف.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<repositories>
<repository>
<id>MavenCentral</id>
<name>Maven repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
...
<repository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
...
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>
http://people.apache.org/repo/m2-snapshot-repository
</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
...
</project>
كما @جورج فيريرا قلت بالفعل وضع المستودع الخاص بك التعاريف في pom.xml.استخدام لمحات adittionally لتحديد المخزون إلى الاستخدام عبر سطر الأوامر:
mvn deploy -P MyRepo2
mvn deploy -P MyRepo1
سأفترض هنا أن كنت طالبا هذا لأنك أحيانا تحتاج إلى إضافة جديد 3-حزب مستودع يبني الخاص بك.قد أكون مخطئا بالطبع...:)
أفضل رهان في هذه الحالة هو استخدام الوكيل المدارة مثل artifactory أو نيكزس.ثم جعل واحد-تغيير الوقت في settings.xml لوضع هذا الأمر بمثابة مرآة العالم.
أي 3rd الطرف اتفاقيات إعادة الشراء التي تحتاج إلى إضافة من تلك النقطة يمكن التعامل معها عن طريق الوكيل.
أنا لم تستخدم مخضرم 2 قبل النظام لدينا لا تزال تعمل على مخضرم 1.x بسبب بعض القضايا مع مخضرم 2.
ومع ذلك ، تبحث في الوثائق مخضرم 2 يبدو أنه لا توجد أي نظام محدد خصائص مثل ذلك.ومع ذلك ، ربما يمكن بناء واحد في تطلع اللاعبون النجوم/الإعدادات باستخدام خصائص النظام.انظر خصائص النظام جزء من هذا http://maven.apache.org/settings.html
لذا يجب ${مخضرم.مستودع} في ملف الإعدادات ومن ثم استخدام -Dmaven.مستودع مثلك أعلاه.
أنا غير متأكد ما إذا كان هذا العمل ، ولكن مع بعض التغيير والتبديل أنا متأكد من أنك يمكن أن يأتي بشيء.
إنشاء بوم الذي يحتوي على مستودع الإعدادات التي تريدها ثم استخدام الأم عنصر في المشروع تطلع اللاعبون النجوم أن ترث مستودعات إضافية.استخدام "المنظمة" بوم له عدة فوائد أخرى عندما قامت مجموعة من المشاريع ينتمون إلى فريق واحد.