首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在maven配置文件中使用maven-dependency plugin

在maven配置文件中使用maven-dependency plugin
EN

Stack Overflow用户
提问于 2020-06-17 19:09:27
回答 2查看 456关注 0票数 0

我已经创建了一个maven配置文件,其中包含maven-dependency-plugin。

下面是我的插件

代码语言:javascript
运行
复制
         <profile>
            <id>copy-dep</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                        <execution>
                            <id>copy-external</id>
                            <phase>none</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                        </execution>
                        </executions>
                        <configuration>
                            <excludeGroupIds>group ids that I need to exclude</excludeGroupIds>
                            <excludeArtifactIds>artifact ids that I need to exclude</excludeArtifactIds>
                            <includeArtifactIds>artifact ids that I need to include</includeArtifactIds>
                            <includeGroupIds>group id that I need to include</includeGroupIds>
                            <outputDirectory>${project.build.directory}/libs</outputDirectory>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

我使用下面的命令来执行

代码语言:javascript
运行
复制
mvn dependency:copy-dependencies -DoutputDirectory=libs -Pcopy-dep

但是当我执行该命令时,它会查找pom中定义的所有依赖项,并复制它们。

我试着把不想要的依赖项放在exclude标签中,但没有起作用,然后我也试着删除exclude标签并保留所需的依赖项,但也不起作用。

在我的pom中,我使用maven汇编插件来分离出所需的依赖项,我不希望这些依赖项被复制到创建的配置文件中。

你知道我在哪里做错了吗?有没有更好的方法来达到同样的效果。

EN

回答 2

Stack Overflow用户

发布于 2020-06-17 19:59:03

为了只复制“列出的”工件(在本例中,它将只复制junit和mockito):

代码语言:javascript
运行
复制
<profile>
  <id>copy-dep</id>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
            </artifactItem>
            <artifactItem>
              <groupId>org.mockito</groupId>
              <artifactId>mockito-core</artifactId>
              <version>2.28.2</version>
            </artifactItem>
          </artifactItems>
          <outputDirectory>${project.build.directory}/libs</outputDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

并执行它:

代码语言:javascript
运行
复制
mvn dependency:copy -Pcopy-dep
票数 1
EN

Stack Overflow用户

发布于 2020-06-17 21:33:54

您需要告诉Maven运行哪个执行。所以写下:

代码语言:javascript
运行
复制
mvn dependency:copy-dependencies@copy-external -DoutputDirectory=libs -Pcopy-dep

顺便说一句:把这个放到一个配置文件中可能没有必要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62427577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档