Maven в многомодульном веб-проекте: как поместить выходные данные модулей в классы WEB-INF /, а не в WEB-INF / lib в качестве JAR-файлов? - PullRequest
4 голосов
/ 11 марта 2009

У меня есть многомодульный проект Maven. По умолчанию при сборке веб-модуля все родственные модули типа JAR, от которых он зависит, копируются в папку WEB-INF / lib. Я хочу, чтобы выходные данные родственных модулей были помещены в папку WEB-INF / classes без упаковки в JAR.

Может возникнуть более общий вопрос: как сохранить файлы конфигурации модулей-братьев вне JAR-файлов, чтобы их можно было легко редактировать после развертывания?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

На случай, если кому-то будет интересно, я нашел это решение. У меня была точно такая же проблема.

            <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <packagingExcludes>WEB-INF/lib/MYPACKAGE_TO_EXCLUDE.jar</packagingExcludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>unpack-MYPACKAGE_TO_EXCLUDE</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>unpack</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>${project.groupId}</groupId>
                                        <artifactId>MYPACKAGE_TO_EXCLUDE</artifactId>
                                        <version>${project.version}</version>
                                        <type>jar</type>
                                        <outputDirectory>${project.build.directory}/classes
                                </outputDirectory>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
1 голос
/ 11 марта 2009

Вы можете использовать оверлей , хотя для этого требуется, чтобы у брата был тип войны, а не баночка. Там также используется плагин зависимости для распаковки jar, но он будет распаковывать только версию в вашем локальном репозитории, а не ту, которую вы только что упаковали.

Что касается вашего «более общего» вопроса, для плагина jar есть тег исключает .

...