Jaxb эпизодическая подборка с Maven - PullRequest
2 голосов
/ 22 декабря 2010

Я пытаюсь выполнить maven-jaxb2-plugin-sample-episode-0.7.4 (объяснено здесь и доступна загрузка ), чтобы попробовать отдельную компиляцию схемы.Несмотря на то, что он компилирует первую схему (A), он терпит неудачу во второй (B), потому что не может разрешить артефакт maven-jaxb2-plugin-sample-episode-a-maven: jar: 0.7.4.

Я выполняю mvn assembly:assembly из командной строки (windows), и получаю ошибку:

...
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven JAXB 2.x Plugin Sample [episode-b|maven]
[INFO] ------------------------------------------------------------------------
[INFO] [jaxb2:generate {execution: default}]
Downloading: http://repo1.maven.org/maven2/org/jvnet/jaxb2/maven2/maven-jaxb2-pl
ugin-sample-episode-a-maven/0.7.4/maven-jaxb2-plugin-sample-episode-a-maven-0.7.
4.jar
[INFO] Unable to find resource 'org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample
-episode-a-maven:jar:0.7.4' in repository central (http://repo1.maven.org/maven2
)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Could not resolve the artifact.

Embedded error: Missing:
----------
1) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample-episode-a-maven:jar:0.7.4

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=org.jvnet.jaxb2.maven2 -DartifactId=mav
en-jaxb2-plugin-sample-episode-a-maven -Dversion=0.7.4 -Dpackaging=jar -Dfile=/p
ath/to/file

  Alternatively, if you host your own repository you can deploy the file there:

      mvn deploy:deploy-file -DgroupId=org.jvnet.jaxb2.maven2 -DartifactId=maven
-jaxb2-plugin-sample-episode-a-maven -Dversion=0.7.4 -Dpackaging=jar -Dfile=/pat
h/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency:
        1) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-ample-episode-b-maven:jar:0
.7.4
        2) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample-episode-a-maven:jar:
0.7.4

----------
1 required artifact is missing.

for artifact:
  org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-ample-episode-b-maven:jar:0.7.4

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)


[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds
[INFO] Finished at: Wed Dec 22 16:31:29 CET 2010
[INFO] Final Memory: 16M/39M
[INFO] ------------------------------------------------------------------------

Пример должен работать так, как есть, что я делаю неправильно?В реальном сценарии у меня есть более 10 схем, которые должны быть скомпилированы как разные эпизоды, поэтому мне нужно, чтобы процесс был автоматическим (т.е. не нужно выполнять «mvn что-то» для каждого отдельного артефакта)

1 Ответ

3 голосов
/ 30 декабря 2010

Модуль maven-jaxb2-plugin-ample-episode-b-maven зависит от maven-jaxb2-plugin-ample-episode-a-maven.

Когда mvn assembly:assembly запускается из родительской папки (которая содержит два модуля), он создает JAR для maven-jaxb2-plugin-ample-episode-a-maven, но не устанавливает его в вашем локальном хранилище .

Когда он пытается построить maven-jaxb2-plugin-ample-episode-b-maven, он ищет зависимость (maven-jaxb2-plugin-ample-episode-a-maven) и не может найти ее в локальном хранилище.Таким образом, ошибка.

Вопрос в том, зачем вам запускать mvn assembly:assembly, который используется для создания бинарного дистрибутива?В любом модуле нет дескрипторов сборки.

mvn install отлично работает и успешно собирает оба модуля.

...