<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>false</failOnWarning>
</configuration>
</execution>
<!--Copy the dependencies so ant build has the same versions-->
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>true</stripVersion>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<excludeTransitive>false</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
未能执行goal org.apache.maven.plugins:maven-dependency-plugin:2.6:project上的copy-dependencies(copy-dependencies):不能排除测试范围,这将排除所有内容。
是否有一种方法可以将测试依赖项与其他依赖项分开,这样我就可以复制到不同的文件夹中?
我试图通过添加测试配置来排除测试范围,但给出了一个错误
我只是偶然发现了这个,可能是因为非常不同的原因,但我想我找到了我们两个的答案。例如,试试这个。当然,当前目录中需要pom.xml。
mvn dependency:copy-dependencies \
-DincludeScope=runtime \
-DexcludeScope=provided \
-DoutputDirectory=target/war/WEB-INF/lib
对Brian Fox迟来的巨大感谢,他在Maven依赖插件问题#128上写道:
/**
* Scope to include. An Empty string indicates all scopes (default).
* The scopes being interpreted are the scopes as
* Maven sees them, not as specified in the pom. In summary:
* <ul>
* <li><code>runtime</code> scope gives runtime and compile dependencies,</li>
* <li><code>compile</code> scope gives compile, provided, and system dependencies,</li>
* <li><code>test</code> (default) scope gives all dependencies,</li>
* <li><code>provided</code> scope just gives provided dependencies,</li>
* <li><code>system</code> scope just gives system dependencies.</li>
* </ul>
*
* @since 2.0
*/
@Parameter( property = "includeScope", defaultValue = "" )
protected String includeScope;
PS:请不要建议我在这里使用assembly或其他fat-jar插件,因为我有意复制依赖项jar用于Docker映像构建优化:一层用于依赖项,另一层用于jar,在任何依赖项改变之前,依赖项层总是被缓存:
问题内容: 我只想在编译时在Java类中使用maven占位符,以减少重复。 像这样: pom.xml SomeVersion.java 问题答案: 只需在src / main / resources中创建具有以下内容的文件app.properties 然后像这样启用Maven过滤 就是这样-在应用程序代码中只需读取属性文件 并提供这样的方法
问题内容: 我意识到这更多是语义上的追求,而不是功能上的追求。 我有三种类型的编译范围依赖项: 仅编译范围,在运行时不使用。GWT客户端开发人员,MVP4G,RestyGWT,源保留注释处理器。我使用REST,因此不需要GWT服务器端。 提供-编译所需的Hibernate jar,但由JBoss提供。 编译+运行时jars。 对于情况2,我们可以使用提供的范围。情况3,我们将使用编译范围。 但是,
问题内容: 我正在尝试从Maven内部执行繁琐的任务,而无需安装Node.js或任何东西。这是因为我不想将我的工件由Jenkins打包,也无法在该机器上安装Node.js。 我知道使用npm很容易,并且有一些命令可以使它正常工作,但是我也认为与maven集成应该很容易,问题是我不知道从哪里开始,因为我是npm的新手。 问题答案: 是的,使用frontend-maven-plugin,您可以通过Ma
我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。
我需要从maven Dependence插件中排除单个工件:复制依赖项。 在文档上:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我发现了两个有趣的选择: ExcludeArtifactId,它将排除与给定工件id匹配的所有工件(组id上的通配符) ExcludeGroupId