由于可以在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中一样?如果答案是肯定的,那该怎么办呢?
答案 0 :(得分:1)
我认为您可以将git update-index --no-assume-unchanged TheNameOfTheFileCausingTheIssue
目标附加到shade:shade
阶段,并将生成的jar设置为process-resources
依赖项,以便在{{system
期间可用1}}阶段。
但是我不推荐它,因为你的IDE几乎肯定会在理解你的POM时遇到问题。