标签: maven-dependency-plugin

Maven依赖插件忽略目标

我正在使用命令行中的maven-dependency-plugin来下载单个文件,但是在我的本地存储库中,对于我的特定用例,我希望将它下载到当前目录.

我正在使用该插件的2.4版,它应该支持-Ddestination作为备用下载站点; 但是,我无法让它发挥作用.在调试模式下运行maven似乎表明目标参数被忽略...

我正在运行以下内容:

M:\>mvn -e -X org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
-Ddestination=M:\test \
-DremoteRepositories=http://nexus-repo:8080/nexus/content/repositories/snapshots \
-Dartifact=com.company.Common:CommonLibs:1.12.0-SNAPSHOT:tar \
-Dtransitive=false
Run Code Online (Sandbox Code Playgroud)

......但得到这个......

[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-dependency-plugin:2.4:get' -->
[DEBUG]   (f) artifact = com.company.Common:CommonLibs:1.12.0-SNAPSHOT:tar
[DEBUG]   (f) localRepository = Repository[local|file://C:\Subversion\LocalMavenRepo]
[DEBUG]   (f) packaging = jar
[DEBUG]   (f) pomRemoteRepositories = [Repository[central|http://repo1.maven.org/maven2]]
[DEBUG]   (f) remoteRepositories = http://nexus-repo:8080/nexus/content/repositories/snapshots
[DEBUG]   (f) repositoryId = temp
[DEBUG]   (f) transitive = false
[DEBUG] -- end configuration --
[INFO] [dependency:get {execution: default-cli}]
[DEBUG] Skipping disabled repository central
[INFO] snapshot com.company.Common:CommonLibs:1.12.0-SNAPSHOT: checking for updates from temp
[DEBUG] …
Run Code Online (Sandbox Code Playgroud)

java maven maven-dependency-plugin

3
推荐指数
1
解决办法
1552
查看次数

maven-dependency-plugin unpack在阶段没有被执行

我包装了EJB,我需要包括从依赖到罐子一些.classes,我试图使用Maven的依赖,插件解压神器将文件放在我的$ {project.build.directory阶段期间/ classes目录,但是当我执行mvn包时,我没有看到任何日志或对maven-dependency-plugin的引用(没有任何反应),我甚至尝试使用无效版本的插件,它甚至没有抛出异常.

在我的pom.xml下面

    ....
<packaging>ejb</packaging>
<name>myapp</name>

...repository and props

<build>
    <pluginManagement>
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.myapp</groupId>
                                    <artifactId>model</artifactId>
                                    <version>1.0.0</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                    <includes>**/shared/*.class</includes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.0</ejbVersion>
                </configuration>
            </plugin>

        </plugins>
    </pluginManagement>
</build>    
<dependencies>
    <dependency>
        <groupId>com.myapp</groupId>
        <artifactId>model</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

PS:工件模型安装在本地仓库中,我也尝试过其他阶段.

maven-3 maven maven-dependency-plugin

3
推荐指数
1
解决办法
3031
查看次数

如何输出简单的Maven依赖项列表

我正试图从我的POM获得一个简单的,机器可解析的依赖项列表.如果我做:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom
Run Code Online (Sandbox Code Playgroud)

我得到了无意义的[INFO]输出:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - my-group:my-project:jar:1.0
[INFO]    task-segment: [org.apache.maven.plugins:maven-dependency-plugin:2.1:list]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:list {execution: default-cli}]
[INFO] 
[INFO] The following files have been resolved:
[INFO]    com.squareup.picasso:picasso:jar:2.5.2:compile
[INFO]    commons-io:commons-io:jar:1.3.2:compile
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Mon Jan 11 14:06:05 GMT 2016
[INFO] Final Memory: 17M/325M
[INFO] ------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

然后我必须手动刮取信息.如果我添加-q开关

mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom
Run Code Online (Sandbox Code Playgroud)

如果它已经是本地的,我会得到一个下载进度消息或什么都没有(除非当然有错误).

是否真的没有办法执行依赖列表命令,所以它只输出一个简单的下载依赖列表?就像是:

> mvn …
Run Code Online (Sandbox Code Playgroud)

maven maven-dependency-plugin

3
推荐指数
1
解决办法
3692
查看次数

maven:将资源从依赖jar复制到目标文件夹

我需要从一个依赖的jar文件到我的当前项目的输出目录的根目录的根目录复制的资源文件(menu.xml文件),在生成过程中被执行的测试之前.该文件必须可用于测试,但稍后也可用于主程序...getClassLoader().getResourceAsStream("menu.xml").

我正在尝试在这个问题中提出的解决方案,但它不起作用.

这是pom文件的样子:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>resource-dependencies</id>
        <phase>process-test-resources</phase>
        <goals>
          <goal>unpack-dependencies</goal>
        </goals>
        <configuration>
          <type>jar</type>
          <includeArtifactIds>pm1j-jar</includeArtifactIds>
          <includes>menu.xml</includes>
          <outputDirectory>${project.build.outputDirectory}</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

当我执行时,mvn clean process-test-resources我看到以下输出:

[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ pm1-config ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-dependency-plugin:2.8:unpack-dependencies (resource-dependencies) @ pm1-config ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.709 s
[INFO] Finished at: 2016-05-05T15:01:06-03:00
[INFO] Final Memory: 30M/458M
[INFO] ------------------------------------------------------------------------ …
Run Code Online (Sandbox Code Playgroud)

java maven maven-dependency-plugin

3
推荐指数
2
解决办法
1万
查看次数

Maven依赖插件会忽略outputDirectory配置

我想用我的主要Java项目及其所有依赖项创建一个jar文件。所以我在pom文件中创建了以下插件定义:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <!-- exclude junit, we need runtime dependency only -->
                <includeScope>runtime</includeScope>
                <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

所以我执行mvn dependency:copy-dependencies,将所有的依赖复制到target/dependency而不是复制上很好dependency-jars。有任何想法吗?

java maven maven-dependency-plugin

3
推荐指数
1
解决办法
1540
查看次数

从maven项目下载所有插件依赖项

我试图在实际使用它们之前从maven项目下载所有插件依赖项.

我试过跑:

mvn dependency:resolve-plugins
Run Code Online (Sandbox Code Playgroud)

这成功下载了它的插件和部分依赖项.例如,对于exec插件,我得到:

... 
[INFO] Plugin Resolved: exec-maven-plugin-1.6.0.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar (37 KB at 437.4 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar (66 KB at 709.6 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar (238 KB at 1785.2 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar (54 KB at 610.9 KB/sec)
[INFO]     Plugin Dependency Resolved: maven-toolchain-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-project-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-model-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-artifact-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-artifact-manager-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-core-2.2.1.jar
[INFO]     Plugin Dependency Resolved: …
Run Code Online (Sandbox Code Playgroud)

maven maven-dependency-plugin

3
推荐指数
1
解决办法
2010
查看次数

如何找到 Maven 中依赖项和插件的隐藏版本?

我们不需要指定我们使用的Maven依赖项和插件的版本和其他参数。我们只能在父 POM 中执行一次,或者可以通过其他方式在子 POM 中继承该属性。

不幸的是,我多次遇到无法轻松找到依赖项和插件的真实参数的项目。即依赖项的版本为空,但在父 POM 中没有有关此的信息。

所以我的问题是:

  1. 在Maven中指定依赖和插件的参数有哪些可能的方式?即,如果版本号既不存在于子 POM 的插件中,也不存在于父 pom 的插件管理中,我可以在哪里查找版本号?

  2. 有没有 Maven 命令可以找出 Maven 从哪里获取这些参数?例如,我可能会使用该dependency:tree命令。它将打印一个依赖项列表,这将帮助我理解我所困扰的版本依赖项。但这是一个黑客,它不能帮助我使用插件。也许有更好的东西?

maven maven-dependency-plugin maven-dependency

2
推荐指数
1
解决办法
3181
查看次数

如何将"maven unpack-dependencies"转换为绝对路径?

如何使用maven依赖插件,unpack-dependecies目标解压缩到绝对路径,即在项目树中生成的目标文件夹中不相对?例如,我想在/ usr/local/*中解压缩下面两个依赖项的工件

<dependencies>
    <dependency>
        <groupId>package.org.apache.apr</groupId>
        <artifactId>apr-bin</artifactId>
        <version>1.4.6</version>
        <classifier>bin</classifier>
        <type>tar.gz</type>
    </dependency>
    <dependency>
        <groupId>package.org.apache.apr-util</groupId>
        <artifactId>apr-util-bin</artifactId>
        <version>1.4.1</version>
        <classifier>bin</classifier>
        <type>tar.gz</type>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <!-- Unpack header files and libraries for build -->
                <execution>
                    <id>apr-bin-unpack</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <excludeTransitive>true</excludeTransitive>
                        <!-- This element does NOT make a difference -->
                        <outputdirectory>/usr/local</outputdirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

maven maven-dependency-plugin

1
推荐指数
1
解决办法
2999
查看次数

根据Maven中的给定条件添加依赖

当我构建 maven 项目时,有没有一种方法可以根据给定的条件设置依赖项。

mvn package someCondition
Run Code Online (Sandbox Code Playgroud)

因此,如果我说mvn install A它应该添加一个依赖项,如果说mvn install B它应该添加另一种类型的依赖项。

请帮忙。谢谢你

PS 有没有办法通过创建多个配置文件来做到这一点?

java maven-3 maven-dependency-plugin

0
推荐指数
1
解决办法
4298
查看次数