распаковка maven-dependency-plugin не выполняется во время фазы - PullRequest
3 голосов
/ 24 марта 2012

Я упаковываю ejb, и мне нужно включить в jar несколько классов из зависимости, я пытаюсь использовать maven-dependency-plugin , чтобы распаковать артефакт и поместить файлы в моем $ {project.build.directory} / classes во время фазы package , но когда я выполняю mvn package , я не вижу никаких журналов или ссылок на maven-dependency-plugin (ничего не происходит), я даже пытался поставить неверную версию плагина, и он даже не выбрасывает исключения.

Ниже моего pom.xml

    ....
<packaging>ejb</packaging>
<name>myapp</name>

...repository and props

<build>
    <pluginManagement>
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.myapp</groupId>
                                    <artifactId>model</artifactId>
                                    <version>1.0.0</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                    <includes>**/shared/*.class</includes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.0</ejbVersion>
                </configuration>
            </plugin>

        </plugins>
    </pluginManagement>
</build>    
<dependencies>
    <dependency>
        <groupId>com.myapp</groupId>
        <artifactId>model</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

что мне не хватает?

PS: модель артефакта установлена ​​в локальном репозитории, и я пробовал и с другими фазами.

1 Ответ

9 голосов
/ 24 марта 2012

Если вы удалите строки, содержащие текст и , плагин должен запуститься. Только эти две линии, а не линии между ними. pluginManagement - немного продвинутая функция.

PluginManagement предоставляет сведения о конфигурации для POM, которые наследуются от этого POM. Однако в этом разделе представлены только детали конфигурации. Чтобы фактически быть выполненным, плагин должен явно указываться вне раздела pluginManagement.

См. POM Reference

...