当前位置: 首页 > 面试题库 >

maven-dependency-plugin忽略outputDirectory配置

姬墨竹
2023-03-14
问题内容

我想用我的主要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中,可以在2个地方配置插件:用于所有执行(<configuration><plugin>级别使用)或用于每个执行(<configuration><execution>级别使用)。

有几种方法可以解决您的问题:

  • 将移到的<configuration>外部<execution>,并使其对所有执行通用。你将会拥有:
    <plugin>
    

    maven-dependency-plugin
    2.5.1


    runtime
    ${project.build.directory}/dependency-jars/






 类似资料:
  • 选项无效。 运行生成一个war目录,其中。class文件位于目录中,它们也不会存档到目录中的jar中。产生相同的结果。 JIRA票-https://issues.apache.org/JIRA/browse/mwar-355 这就是有问题的项目:https://bitbucket.org/dmos62/raudondvaris

  • 下面是我的pom.xml: 在Entourage-0.0.1-snapshot.jar中,config.properties位于根,其内容与上面相同(即localhost)。 我不是在胡编乱造!

  • 但是,如果我添加以下属性,插件将忽略它(生成的WAR具有默认名称,即artifactId-version): 以下是文档的两个摘录: Warname: null FailonMissingWebXML: 如果web.xml文件丢失,构建是否失败。如果希望WAR构建时不使用web.xml文件,则设置为false。如果您正在构建一个没有web.xml文件的覆盖层,这可能很有用。 类型:布尔 因为:2.

  • Dependency management plugin 提供类似 Maven 依赖管理和排除功能. 根据配置的依赖管理元数据,此插件将会控制你项目的版本、传递依赖,并且将执行你项目中的所有排除声明(exclusions declared)。 示例代码: dependencyManagement {     dependencies {          dependency 'org.sprin

  • 问题内容: 我安装了OSX ,并随同安装了: 在将其设置为1.6时显示1.6,而在将其设置为1.7时显示1.7: …但是Maven忽略了我的设置: 我发现了这个问题],这个家伙只需要在内部对其进行硬编码,但是我不希望自己进行硬编码(因此!),而且我也没有或。 它使用的版本似乎来自输出中的第一个版本,因此在短期内,通过调整1.7的文件),我能够再次获得1.6 ,但这仅意味着我获得了1.6而不是1.7