Tak podczas tych zmagań natrafiłem na ciekawostkę, której rozwiązania nie sądziłem, że w ogóle mógłbym oczekiwać - uruchamianie wtyczek Apache Maven 2 spoza org.apache.maven.plugins z linii poleceń bez deklaracji w pom.xml. Często przychodzi mi uruchamiać wtyczki mavenowe w ten sposób, więc z tym większą ulgą przyjąłem nowinę, że można skrócić nazwę wtyczki i...moje cierpienia.
jlaskowski@work ~Innymi słowy, wtyczki mavenowe spoza groupId - org.apache.maven.plugins - nie są rozpozna(wa)ne domyślnie przez Mavena. Można oczywiście uruchomić wtyczkę podając jej pełną nazwę w formacie groupId:artifactId:goal, tj. w tym przypadku byłoby to mvn org.mortbay.jetty:jetty-maven-plugin:run, ale chciałoby się krócej, nieprawdaż? (w tym przypadku niepomyślne wykonanie nie było spowodowane nieprecyzyjnym wskazaniem na wtyczkę, ale po prostu brakiem środowiska do jej uruchomienia, czyli brakiem projektu mavenowego).
$ mvn jetty:run
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-jetty-plugin' does not exist or no valid version could be found
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
jlaskowski@work ~Okazuje się, że rozwiązaniem jest...zapoznanie się z dokumentacją (przysiągłbym, że ją czytałem, a przynajmniej przeglądałem). Na rozwiązanie najpierw trafiłem w dokumentacji wtyczki maven-jetty-plugin (odszukaj "Note: Maven by default looks for plugins"), a później wystarczyło już poszukać pluginGroups w Configuring Maven to Search for Plugins z pomocą Settings Reference i ostatecznie uzupełniłem settings.xml o następującą sekcję pluginGroups:
$ mvn org.mortbay.jetty:jetty-maven-plugin:run
[INFO] Scanning for projects...
[INFO] artifact org.mortbay.jetty:jetty-maven-plugin: checking for updates from central
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [org.mortbay.jetty:jetty-maven-plugin:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: resources. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>i wykonanie "skrótowe" wtyczki jetty-maven-plugin z mvn jetty:run kończy się już pomyślnie (z dokładnością do BUILD ERROR z powodu braku projektu).
<settings 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/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
</settings>
jlaskowski@work ~Ciekawe ilu osobom owe "wydłużone" wskazanie wtyczek z linii poleceń sprawiało trudność w zaakceptowaniu zachowania Mavena?
$ mvn jetty:run
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] org.mortbay.jetty: checking for updates from central
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: resources. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
Brak komentarzy:
Prześlij komentarz