Java Maven插件依赖项
关于这个问题,我还没有找到具体的答案 我已使用以下方法成功地手动安装了修补的maven插件jar文件osxappbundle:Java Maven插件依赖项,java,maven,maven-plugin,Java,Maven,Maven Plugin,关于这个问题,我还没有找到具体的答案 我已使用以下方法成功地手动安装了修补的maven插件jar文件osxappbundle: mvn install:install-file -Dfile=osxappbundle-maven-plugin-1.0-alpha-4-SNAPSHOT.jar -Dpackaging=jar -DgroupId=org.codehaus.mojo -DartifactId=osxappbundle-maven-plugin -Dversion=1.0-alpha-
mvn install:install-file -Dfile=osxappbundle-maven-plugin-1.0-alpha-4-SNAPSHOT.jar -Dpackaging=jar -DgroupId=org.codehaus.mojo -DartifactId=osxappbundle-maven-plugin -Dversion=1.0-alpha-4-SNAPSHOT -DgeneratePom=true
当pom中引用插件,特别是“bundle”时,我收到错误:
无法在插件“org.codehaus.mojo:osxappbundle maven plugin:1.0-alpha-4-SNAPSHOT”中加载mojo“bundle”。缺少必需的调用:org/apache/velocity/exception/MethodInvocationException
org.apache.velocity确实已安装,并且位于我的本地respository.m2中,但找不到。如果我手动将类文件添加到jar中,就会找到它们,因此这表明它没有使用本地存储库解决依赖关系
我假设这是因为我手动安装了jar文件
如果jar是手动安装的,那么它是否只会在依赖项位于jar中而不向外看的情况下解析依赖项
pom中引用的插件如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>osxappbundle-maven-plugin</artifactId>
<version>1.0-alpha-4-SNAPSHOT</version>
<configuration>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
插件的处理方式与项目依赖项相同。原始插件在其pom.xml中引用的任何依赖项在运行时都放在类路径上 更改插件pom.xml中的标记并运行mvn安装通常就足够了。这将把jar和pom文件安装到本地存储库中。使用一个明确说明不是官方版本的版本,例如1.2.3-CUSTOM-SNAPSHOT。然后在应用程序的pom文件中将依赖项更改为该版本,它应该可以按预期工作 如果出于任何原因必须直接使用invoke-install-plugin,则应始终在jar文件中安装适当的pom.xml。使用-DpomFile=/path/to/pom.xml指定插件正确pom的路径。 -如果存储库中还没有此工件和版本的pom.xml,那么DgeneratePom=true将只生成一个最低限度的pom。此pom文件不会指定任何依赖项。因此,如果您的jar/插件有任何依赖项,请不要使用此选项 参考资料:
插件的处理方式与项目依赖项相同。原始插件在其pom.xml中引用的任何依赖项在运行时都放在类路径上 更改插件pom.xml中的标记并运行mvn安装通常就足够了。这将把jar和pom文件安装到本地存储库中。使用一个明确说明不是官方版本的版本,例如1.2.3-CUSTOM-SNAPSHOT。然后在应用程序的pom文件中将依赖项更改为该版本,它应该可以按预期工作 如果出于任何原因必须直接使用invoke-install-plugin,则应始终在jar文件中安装适当的pom.xml。使用-DpomFile=/path/to/pom.xml指定插件正确pom的路径。 -如果存储库中还没有此工件和版本的pom.xml,那么DgeneratePom=true将只生成一个最低限度的pom。此pom文件不会指定任何依赖项。因此,如果您的jar/插件有任何依赖项,请不要使用此选项 参考资料:
告诉我们你是如何在POM中引用这个插件的。告诉我们你是如何在POM中引用这个插件的。我很困惑-你认为OP做错了什么?OP在命令行中有include-DgeneratePom=true。据我所知,OP试图用自己的实现替换一个已经工作的插件。原始插件似乎依赖于其他未加载的JAR,因为修改后的插件使用生成的pom.xml,而不是具有正确依赖项部分的pom。这是一个极好的响应-尝试将一些措辞编织到您的答案主体中,因为你的意思并不明显。@DuncanJones:谢谢你的反馈,我改变了措辞。谢谢!你说得对!那一定是我唯一没有试过的东西。我将依赖项添加到生成的pom中,并清除了所有错误。非常感谢!我很困惑-你认为OP做错了什么?OP在命令行中有include-DgeneratePom=true。据我所知,OP试图用自己的实现替换一个已经工作的插件。原始插件似乎依赖于其他未加载的JAR,因为修改后的插件使用生成的pom.xml,而不是具有正确依赖项部分的pom。这是一个极好的响应-尝试将一些措辞编织到您的答案主体中,因为你的意思并不明显。@DuncanJones:谢谢你的反馈,我改变了措辞。谢谢!你说得对!那一定是我唯一没有试过的东西。我将依赖项添加到生成的pom中,并清除了所有错误。非常感谢!