может ли сборочный плагин maven выбирать указанный пакет java? - PullRequest
3 голосов
/ 21 ноября 2011

Предположим, у нас есть следующие пакеты в нашем проекте

org.xxx.dao, org.xxx.service, org.xxx.service.impl

всепакет находится в исходной папке src / main / java

Могу ли я собрать пакеты в отдельные банки, (xxx-dao.jar, xxx-service.jar, xxx-service-impl.jar)?

Ответы [ 2 ]

5 голосов
/ 21 ноября 2011

Для этого вы можете использовать стандарт maven-jar-plugin:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <id>dao</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <archive>
                    <index>true</index>
                    <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                </archive>

                <classifier>dao</classifier>
                <includes>
                    <include>org/xxx/dao/**/*</include>
                </includes>
            </configuration>
        </execution>

        <execution>
            <id>service</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <archive>
                    <index>true</index>
                    <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                </archive>

                <classifier>service</classifier>
                <includes>
                    <include>org/xxx/service/**/*</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

Это дает вам один JAR со всем, а затем несколько JAR только с выбранным контентом, который вы можете выбрать с помощью классификатора в ваших POM Maven..

Если вы хотите опустить JAR по умолчанию (который содержит все), то вы заменяете один <id> на <id>default-jar</id> и добавляете элемент <excludes>, потому что JAR по умолчанию включает в себя все, поэтому вы должныизбавиться от всего, что вам не нужно.

1 голос
/ 21 ноября 2011
Плагин

maven-Assembly не предназначен для такого рода задач, см. его особенности .Если у вас есть исходные коды, я бы предложил скопировать их в модуль вашего проекта.

Но если вы хотите сделать это с помощью плагина maven-assembly, то я думаю, что вы можете сделать это, создав отдельный компоненты дескриптора и определение, какие файлы включить в какую сборку.Вы можете определить исходные файлы для включения в теги includes в разделе sources definition.

...