سؤال

أنا على علم أنني يمكن أن تضيف مخضرم مستودعات جلب تبعيات في ~/.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.مستودع مثلك أعلاه.

أنا غير متأكد ما إذا كان هذا العمل ، ولكن مع بعض التغيير والتبديل أنا متأكد من أنك يمكن أن يأتي بشيء.

إنشاء بوم الذي يحتوي على مستودع الإعدادات التي تريدها ثم استخدام الأم عنصر في المشروع تطلع اللاعبون النجوم أن ترث مستودعات إضافية.استخدام "المنظمة" بوم له عدة فوائد أخرى عندما قامت مجموعة من المشاريع ينتمون إلى فريق واحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top