当前位置: 首页 > 知识库问答 >
问题:

如何安装着色maven工件

乐正峰
2023-03-14

这应该是很容易的,但我遇到了奇怪的行为从maven安装插件。

我需要重新包装一些常见的依赖到我的项目,以避免依赖冲突。

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <id>do_shade</id>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <createDependencyReducedPom>true</createDependencyReducedPom>
                        <shadedArtifactAttached>false</shadedArtifactAttached>
                        <createSourcesJar>true</createSourcesJar>
                        <relocations>
                            <relocation>
                              <pattern>com.google.common</pattern>
                              <shadedPattern>com.myproject.google.common</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.commons</pattern>
                                <shadedPattern>com.myproject.commons</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin>

阴影插件正确地完成了它的工作,并产生了阴影工件com.myproject-myproject. jar和依赖减少的pom文件。但是然后安装插件安装了原始工件(没有依赖项),而不是阴影。

此外,在安装插件问题之前,我的CI服务器(jenkins)构建了这个项目,并正确地发布了阴影工件和依赖减少pom到nexus存储库(!!)。所以现在我从nexus下载了这个神器,我会在我的本地存储库中有正确的罐子,但是如果我使用安装插件,罐子就不好了。

有没有人有过类似的问题?有人知道如何解决这些问题吗??

共有2个答案

温浩大
2023-03-14

我也遇到了这个问题,mvn install将在我的目标目录中构建一个着色jar,但将非着色jar安装到本地Maven存储库中。

最终证明原因是我有

王叶五
2023-03-14

为了回答我自己的问题,问题是我后来将依赖项标记为所提供的阴影,以便它们不会被过渡地拉到我的其他项目中。这导致shade插件不将它们包含在shade jar中。

 类似资料:
  • 当我清理/安装maven时,我会得到以下错误: 1)org.apache.maven:maven-archiver:jar:2.0.1 尝试从项目网站手动下载该文件。 然后,使用命令进行安装:mvn install:install-file-dgroupid=org.codehaus.plexus-dartifactid=plexus-utils-dversion=1.0.4-dpackaging

  • 问题内容: 如何使用源安装Maven工件? 所以以后我不需要在eclipse中打开项目来查看一些代码。 编辑: 我知道我可以将此代码添加到pom.xml 但我想从命令行执行(使其更通用)。 问题答案: 要下载依赖项的源: 要将源附加到安装: 如maven-source- plugin 页面中所述,最好在pom中使用目标。

  • 无法使用更新站点在RAD 8.5.1中安装Maven。 无法完成安装,因为找不到一个或多个必需项。正在安装的软件:用于Eclipse1.0.0.201的m2e-Maven集成10607-2117(org.eclipse.m2e.feature.feature.group1.0.0.20110607-2117)缺少需求:m2e Marketplace1.0.0.20110607-2117(org.e

  • 问题内容: 我想在Eclipse上安装Maven插件。但是,当在“安装软件”部分中添加Maven站点并开始下载并安装它时,发生了有关依赖项的错误。如何解决?我想要完整的安装指南… 问题答案: 首先,缺少哪些依赖项?eclipse的一个很好的maven插件是eclipse maven声纳类型m2eclipse。

  • 我的问题是maven-shade-plugin似乎在我的项目上运行了两次。 我的父pom文件在这里:http://pastebin.com/EsYaCbzJ(在这里发布太长了) 该项目的pom(好吧,在这种情况下是模块)给我带来麻烦在这里:http://pastebin.com/jdyGXGpL 我正在尝试在 MySQL jdbc 驱动程序中着色。 这是我希望使用的pom.xml代码块。 现在,当

  • 我尝试在工件名称中包含git提交哈希,以区分CI场景中的快照版本。git散列成功地包含在我的项目的目标/文件夹中,但是在最后一个maven步骤中,它将工件复制到我的HOME/. m2/repository文件夹中,并将名称更改为ARTIFACTID-VERSION-mta.jar. 我怎么能保持文件名从目标/文件夹,包括提交哈希? 我查看了maven安装插件,但找不到“finalName”属性或类