كيفية جعل مخضرم مكان كل الجرار المشتركة الحروب داخل نفس الأذن إلى الأذن الجذر ؟

StackOverflow https://stackoverflow.com/questions/848947

سؤال

لدينا الحل مع العديد من الحروب.الحروب متشابهة بمعنى أنهم جميعا استخدام السبات الربيع.وهذا يعني أن لدينا عدد من نفسه الجرار داخل كل حرب.هذا هو أن تصبح مشكلة ، لأن حجم الأذن هي بدأت تنمو من نسبة.

وأود أن استخدام مخضرم لحساب تبعيات و وضع كل الجرار مشتركة بين عدة حروب إلى أصل الأذن.

حاولت تنظيم مشروعي باستخدام j2ee ركبه (مخضرم-ركبه-j2ee-بسيطة) لكن كل الحروب لا تزال مغلفة مع تبعيات داخل الشبكة INF/lib.هل هناك طريقة لجعل مخضرم حساب المشترك تبعيات و وضعها إلى الأذن, كما انه قادر على حساب كل الانتقالية تبعيات عند بناء الحرب أو وعاء ؟

هل كانت مفيدة؟

المحلول

وإنشاء قطعة أثرية جديدة باسم المشاعات-الجرار وحزمه كما بوم. يجب أن تعتمد على كل الجرار الشائعة التي تستخدم - الربيع، السبات، Log4j، الخ

وبعد ذلك، في كل حروب بك إضافته كما التبعية مع نطاق "المقدمة" (و لا تنسى لتحديد نوع كما بوم). سوف تكون قادرا على رؤية ذلك في CLASSPATH الخاص بك ولكن لن يتم تعبئتها في الحرب. بهذه الطريقة يمكنك أيضا أن يكون تبعيات الحرب محددة تعبئتها في ذلك، وهو الحل من <لأ href = "http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html" يختلط = "noreferrer"> الحروب نحيف لا تقدم.

نصائح أخرى

كما كنت قد ذكرت في تعليق انه مخضرم مهمة لحساب كل تبعية.عند إنشاء قطعة أثرية ، مع كل مشترك التبعية ، ثم عليك أيضا أن أعتقد ، تبعيات تنتمي هناك.

كما يمكن أن يكون من الممكن, أن يكون لديك لنشر حرب واحدة, مع انها تبعيات على جهاز آخر دون الأذن ، عند تعيين كل حرب التبعية إلى المقدمة ، ثم كنت عالقا مرة أخرى.

الطريقة الوحيدة للحصول على لحمي الحروب هو من الأمثلة:http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html

ولكن الآن يأتي الجزء مثيرة للاهتمام ، هناك واحدة كبيرة!الاختصار (أي كلي يأخذ المذكورة الألم) ، أقول مخضرم ، التبعيات الخاصة بك الحروب.

يذهب داخل الأذن-وحدة وهو يعلن الثانية الاعتماد على الحرب مع نوع بوم لكل حرب التبعية.

<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">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>com.foo</groupId>
    <artifactId>skinny</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ear</artifactId>
<packaging>ear</packaging>
<dependencies>
    <dependency>
        <groupId>com.foo</groupId>
        <artifactId>war</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>
    <dependency>
        <groupId>com.foo</groupId>
        <artifactId>war</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>pom</type>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <skinnyWars>true</skinnyWars>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.foo</groupId>
                        <artifactId>war</artifactId>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
    </plugins>
</build>

الآن كل حرب سيتم تعبئتها بشكل مستقل مع أنها تملك تبعيات و الأذن سيتم تعبئتها مع بنطال الحروب و كل تبعية داخل مجلد lib

تحديث:

نضع في اعتبارنا أن الأذن/lib المجلد لا يمكن استخدامها لكل التبعية جرة في الصارم حاوية مثل جبوس EAP 6.JSF مكون المكتبات مثل توماهوك ، primefaces ، إلخ.يجب أن تقيم في ويب-INF/lib مجلد.

طريقة سهلة لتحقيق هذا مع ما سبق وصفه الحل هو جعل استبعاد المكون مكتبة في الأذنين pom.xml مثل هذا:

...
<dependencies>
    <dependency>
        <groupId>com.foo</groupId>
        <artifactId>war</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>
    <dependency>
        <groupId>com.foo</groupId>
        <artifactId>war</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>pom</type>
        <exclusions>
            <exclusion>
                <groupId>org.primefaces</groupId>
                <artifactId>primefaces</artifactId>
            <exclusion>
        </exclusions>
    </dependency>
</dependencies>
...

الآن كل تبعية الحرب سوف توضع في الأذن/lib باستثناء مكتبة العناصر التي سيتم وضعها في الشبكة INF/lib داخل الحرب

ويمكنك تعيين dependancies نطاق ل "قدمت". وهذا يعني أنها سوف تقدم من قبل بعض وحدة أخرى، ولن يتم تضمينها في جرة النهائية أو الحرب.

ولعل التجمع المساعد يمكن أن تساعدك عند حزم حتى المباراة النهائية EAR ومكان الجرار المشتركة هناك.

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