Maven2: Как мне создать файл, содержащий имена зависимостей проекта? - PullRequest
3 голосов
/ 01 апреля 2010

Я хотел бы поместить имена зависимостей в текстовый файл, который распространяется внутри пакета, созданного с помощью Maven.

Я планирую использовать плагин сборки maven для создания пакета tarball и использовать фильтрацию для помещения имен в текстовый файл.

Единственная проблема в том, что я не знаю, как ссылаться на зависимости в первую очередь.

Ответы [ 3 ]

6 голосов
/ 01 апреля 2010

Для этого вам не нужно использовать фильтрацию, используйте плагин Maven Dependency и его dependency:tree цель для отображения дерево зависимостей для этого проекта . Задайте выходной файл с помощью необязательного параметра ... outputFile. Таким образом, конфигурация может выглядеть следующим образом:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>tree</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>tree</goal>
            </goals>
            <configuration>
              <outputFile>${project.build.outputDirectory}/dep.txt</outputFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

Выполнение фазы package сгенерирует дерево зависимостей в target/classes/dep.txt и упакует его в артефакт. Адаптируйте его под свои нужды.

0 голосов
/ 02 апреля 2010

mvn dependency:resolve, кажется, то, что вы ищете. Поместите следующую конфигурацию плагина в ваш файл POM:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>list-dependencies</id>
        <phase>prepare-package</phase>
        <goals>
          <goal>resolve</goal>
        </goals>
        <configuration>
          <outputFile>dependencies.txt</outputFile>
        </configuration>
      </execution>
    </executions>
  </plugin>

Будет создан файл зависимости.txt с содержимым, похожим на:

The following files have been resolved:
   am:amagent:jar:1.0:system
   am:amclientsdk:jar:1.0:system
   aopalliance:aopalliance:jar:1.0:compile
   asm:asm:jar:2.2.3:compile
   com.sun.jdmk:jmxtools:jar:1.2.1:compile
   com.sun.jmx:jmxri:jar:1.2.1:compile
   com.sun.xml.bind:jaxb-impl:jar:2.1.12:compile
   com.sun.xml.fastinfoset:FastInfoset:jar:1.2.2:compile
   com.sun.xml.messaging.saaj:saaj-impl:jar:1.3.2:compile
   commons-lang:commons-lang:jar:2.3:compile
   commons-logging:commons-logging:jar:1.1:compile
   dom4j:dom4j:jar:1.6.1:compile
   javax.activation:activation:jar:1.1:provided
   javax.jms:jms:jar:1.1:compile
   javax.mail:mail:jar:1.4:compile
   javax.xml.bind:jaxb-api:jar:2.1:compile
   javax.xml.soap:saaj-api:jar:1.3:compile
   junit:junit:jar:4.4:test
   log4j:log4j:jar:1.2.15:compile
0 голосов
/ 01 апреля 2010

Вы можете использовать maven-dependency-plugin dependency:tree для вывода дерева зависимостей в файл.

...