Maven - XSD в качестве зависимости - PullRequest
3 голосов
/ 08 декабря 2010

У нас есть один проект, который определяет форматы сообщений, которые он создает с помощью файлов XSD.

Какой самый простой способ сделать эти файлы XSD в качестве зависимостей другого проекта?используя цель maven-build-helper attach-artifact , чтобы прикрепить мои XSD-файлы.

Есть ли лучший механизм?

1 Ответ

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

Я не знаю цель прикрепления-артефакта, но я сделал что-то такое, о чем вы просили.У меня были файлы wsdl и xsd для записи артефактов Webservice и его клиентских артефактов с помощью axis2.

  1. Я поместил свои wsdl и xsd в собственный проект с именем 'wsdl' в src / main / resources / META-INFи ничего больше.
  2. Я создал собственный проект под названием «мыло» для сгенерированного Java-SOAP-кода.В этом проекте я добавил проект wsdl в качестве зависимости и распаковал файлы wsdl и xsd через maven-dependency-plugin в целевую папку на этапе инициализации.Так что я могу использовать его для генерации SOAP-кода.
  3. Мыльный проект, который я использовал как зависимость для проекта Webservice и для клиентского проекта.

Я поместил все эти проекты в многомодульный проект, чтобы можно было собрать все вместе.Я думаю, что важной частью для вас является конфигурация зависимого плагина:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>unpack-wsdl-dependency</id>
        <phase>initialize</phase>
        <goals>
          <goal>unpack</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <artifactItems>
        <artifactItem>
          <groupId>${groupId}</groupId>
          <artifactId>wsdl</artifactId>
          <outputDirectory>target/wsdl</outputDirectory>
          <includes>META-INF/*.wsdl,META-INF/*.xsd</includes>
        </artifactItem>
      </artifactItems>
      <!-- other configurations here -->
    </configuration>
  </plugin>

Надеюсь, это поможет.

Привет, Майкл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...