Maven: co to jest pluginManagement?
To fragment mojego pliku pom.
....
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
......
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
Używam go z powodzeniem za pomocą polecenia
mvn install
Ale kiedy próbuję załączyć go do tagu "pluginManagement", maven-dependency-plugin
przestaje działać, gdy uruchamiam cel install
.
Dlaczego znacznik "pluginManagement"zmienia zachowanie budowania? A może powinienem użyć innego celu lub opcji?
4 answers
Musisz jeszcze dodać
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
</plugins>
W Twojej kompilacji, ponieważ pluginManagement
jest tylko sposobem na współdzielenie tej samej konfiguracji wtyczki we wszystkich modułach projektu.
Z Dokumentacji Mavena:
PluginManagement : jest elementem widocznym wzdłuż bocznych wtyczek. Plugin Management zawiera elementy plugin w taki sam sposób, z tym wyjątkiem, że zamiast konfigurowania informacji plugin dla tego konkretnego projektu budować, jest przeznaczony do skonfigurowania projektu buduje, że / align = "left" / Jednak to tylko konfiguruje wtyczki, które są faktycznie odwołuje się w elemencie wtyczki w dzieci. Dzieci mają pełne prawo do nadpisania definicji zarządzania wtyczkami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-11 15:08:00
Różnica między <pluginManagement/>
i <plugins/>
jest taka, że <plugin/>
Pod:
<pluginManagement/>
definiuje Ustawienia wtyczek, które będą dziedziczone przez moduły w Twojej kompilacji. Jest to idealne rozwiązanie w przypadku, gdy masz macierzysty plik pom.<plugins/>
jest rzeczywistym wywołaniem wtyczki. Może być dziedziczona od<pluginManagement/>
.
Nie musisz mieć <pluginManagement/>
w swoim projekcie, jeśli nie jest to rodzic POM. Jeśli jednak jest to pom rodzica, to w dziecku pom, musisz mieć deklarację typu:
<plugins>
<plugin>
<groupId>com.foo</groupId>
<artifactId>bar-plugin</artifactId>
</plugin>
</plugins>
Zauważ, że nie definiujesz żadnej konfiguracji. Możesz dziedziczyć go po rodzicu, chyba że musisz dalej dostosować swoje wywołanie zgodnie z potrzebami projektu dziecka.
Aby uzyskać bardziej szczegółowe informacje, możesz sprawdzić:
Maven pom.XML reference: pluginy
Maven pom.XML reference: Plugin Management
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-06 11:05:24
Używasz pluginManagement w macierzystym pom, aby skonfigurować go na wypadek, gdyby jakikolwiek pom dziecka chciał go używać, ale nie każda wtyczka dziecka chce go używać. Przykładem może być to, że Twój super pom definiuje niektóre opcje dla wtyczki Maven Javadoc. Nie każde dziecko pom może chcieć używać Javadoc, więc definiujesz te wartości domyślne w sekcji pluginManagement. Potomny pom, który chce używać wtyczki Javadoc, po prostu definiuje sekcję wtyczki i dziedziczy konfigurację z definicji pluginManagement w rodzic pom.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-07 13:49:49
PluginManagement: jest elementem widocznym wzdłuż bocznych wtyczek. Plugin Management zawiera elementy plugin w taki sam sposób, z tym wyjątkiem, że zamiast konfigurowania informacji o wtyczce dla tego konkretnego projektu build, jest przeznaczony do skonfigurowania projektów buduje, które dziedziczą z tego. Jednak to tylko konfiguruje wtyczki, które są faktycznie odwołuje się w elemencie wtyczki w dzieci. Dzieci mają pełne prawo do obejścia zarządzania wtyczką definicje.
Z http://maven.apache.org/pom.html#Plugin%5FManagement
Skopiowane z:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:02