- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想用我的主要 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>
所以我执行mvn dependency:copy-dependencies
,它工作正常,它将所有依赖项复制到target/dependency
而不是dependency-jars
。有什么想法吗?
最佳答案
这很正常:您配置了 maven-dependency-plugin
的特殊执行, 命名为 copy-dependencies
, 然而,调用目标 dependency:copy-dependencies
直接在命令行上创建默认执行,这与您配置的不同。因此,不会考虑您的配置。
在 Maven 中,有两个地方可以配置插件:为所有执行(在 <configuration>
级别使用 <plugin>
)或为每个执行(在 <configuration>
级别使用 <execution>
)。
有几种方法可以解决您的问题:
移动<configuration>
在<execution>
之外,并使其适用于所有处决。你会:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<!-- exclude junit, we need runtime dependency only -->
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
</configuration>
</plugin>
请注意,有了这个,插件的所有执行都将使用此配置(除非在特定执行配置中被覆盖)。
在命令行上执行特定的执行,即您配置的那个。 This is possible since Maven 3.3.1然后你会执行
mvn dependency:copy-dependencies@copy-dependencies
@copy-dependencies
用于指代 <id>
您要调用的执行。
将您的执行绑定(bind)到 Maven 生命周期的特定阶段,并让它与生命周期的正常流程一起执行。在您的配置中,它已经绑定(bind)到 package
与 <phase>package</phase>
相.所以,调用 mvn clean package
将工作并在配置的位置复制您的依赖项。
关于java - maven-dependency-plugin 忽略 outputDirectory 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815961/
在我的vcproj文件中 什么是.\Release 它是某种宏吗?它在什么设置中显示?怎么设置他? 最佳答案 这看起来像是一个非常旧的 VC++ 版本,但您没有指定是哪个版本。 (不是这样)新的 M
我有以下内容: task cloneProtobuf(type: Exec) { workingDir "${rootProject.buildDir}/github.com/google"
在 testsettings 中创建 DeploymentItem 时如何指定输出目录?当您将 DeploymentItem 属性应用于方法或类时(有一个特殊的构造函数参数),这很容易,但我没有看到在
我用 在 Local.testsettings 中将 TestProject1\Config\下的所有文件复制到 'TestRoot'\TestConfig\,但它直接将文件复制到测试 '
我想知道如何将$ {project.build.outputDirectory}的默认值从目标/类更改为Maven中的代码库。 谢谢 最佳答案 在内部的pom.xml中: ${project.b
我正在使用这个简单的 pom.xml使用 maven-bundle-plugin 生成 OSGi 包: 4.0.0 de.test.osgi test 0.0.1-S
我有以下目录层次结构: generated | | -->java Java目录有如下包: com.model 包含我在编译应用程序之前从某处复制/粘贴的 Java 模型。 我使用
我想用我的主要 java 项目及其所有依赖项创建一个 jar 文件。所以我在 pom 文件中创建了以下插件定义: org.apache.maven.plugins maven-dep
我尝试使用 maven-dependency-plugin 的复制依赖目标。我检查了 its official example使用下面的代码段。 我的问题是:依赖项总是被复制到 target\depe
我尝试使用 maven-resources-plugin 使用复制资源目标进行一些过滤,并遇到以下错误: Failed to execute goal org.apache.maven.plugins
是否可以配置 /path/to/tomcat/webapps/在 ~/.m2/settings.xml这样每个 Maven 项目都使用 maven-war-plugin默认情况下会设置此属性吗? 我的
在我的Khatami项目 我正在使用 maven 来管理编译并将结果打包到一个可运行的 Artifact 中:顶层的可执行 shell 脚本,bin/ 包含可执行 jar 及其依赖的 jar。请看我的
发现任务':app:processDebugGoogleServices'(类型'GoogleServicesTask')的配置存在一些问题。 没有相应 getter 的类型“GoogleServic
我是一名优秀的程序员,十分优秀!