在项目依赖关系中重命名

时间:2017-03-14 12:12:56

标签: maven sbt maven-shade-plugin

由于可以在this answer中读取,因此SBT(sbt-assembly)允许在导入重命名的库的项目中重命名包。 e.g:

我想在我的项目中使用包org.pfcoperez.algorithms,但我想"看"它,即:能够导入它,如com.algorithms

我知道Maven Shade插件可以按照here描述重定位依赖项:

         <relocations>
            <relocation>
              <pattern>org.codehaus.plexus.util</pattern>
              <shadedPattern>org.shaded.plexus.util</shadedPattern>
              <excludes>
                <exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
                <exclude>org.codehaus.plexus.util.xml.pull.*</exclude>
              </excludes>
            </relocation>
          </relocations>

我可以使用它来生成具有新包结构的中间jar。但是,我想避免使用该中间工件。

是否可以在Maven项目中执行此操作,就像在SBT中一样?如果答案是肯定的,那该怎么办呢?

1 个答案:

答案 0 :(得分:1)

我认为您可以将git update-index --no-assume-unchanged TheNameOfTheFileCausingTheIssue目标附加到shade:shade阶段,并将生成的jar设置为process-resources依赖项,以便在{{system期间可用1}}阶段。

但是我不推荐它,因为你的IDE几乎肯定会在理解你的POM时遇到问题。