0

有一个包含多个模块项目的项目,并且它本身具有其他模块项目。我有某些模块生成特殊的工件类型“.kar”,我在 Maven 部署阶段将其部署到工件。

现在我想找到一种方法,通过使用这个现有的 pom 按版本从工件中下载这些特定的工件。

mvn dependency:copy <> 允许我根据特定的工件下载它。

我希望通过生成这些工件的 pom 文件来完成。问题是当我使用依赖项时:复制,它只在可能有也可能没有特殊工件的当前 pom 上运行。

如果我在其中使用它,它会重新部署所有工件并正确下载特殊工件。虽然这不是正确的解决方案。

4

1 回答 1

0

您可以将一个新模块添加到您的项目中,该模块必须包含您<dependencies>的所有.kar工件。在这个新模块的 POM 文件中,您可以使用copy-dependenciesmaven-dependency-plugin 的目标。

<project>

  <!-- Integrate this module into your multi-module project. -->
  <parent>
    <groupId>my.group.id</groupId>
    <artifactId>my-parent-pom</artifactId>
    <version>1.0.0-SNAPSHOT</version<
  </parent>

  ...

  <!-- Add dependencies for all your .kar artifacts. -->
  <dependencies>
    <dependency>
      <groupId>my.group.id</groupId>
      <artifactId>kar-artifact-1</artifactId>
      <version>${project.version}</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>my.group.id</groupId>
      <artifactId>kar-artifact-2</artifactId>
      <version>${project.version}</version>
      <type>kar</type>
    </dependency>
    ...
  </dependencies>

  <build>
    <plugins>
      <!-- Use the maven-dependency-plugin to copy your .kar artifacts. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy-kar-artifacts</id>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeTypes>kar</includeTypes>
            </configuration>
          </execution>
        </executions>
      <plugin>
    </plugins>
  </build>

</project>
于 2014-02-02T20:00:12.413 回答