Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven插件依赖项_Java_Maven_Maven Plugin - Fatal编程技术网

Java Maven插件依赖项

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-

关于这个问题,我还没有找到具体的答案

我已使用以下方法成功地手动安装了修补的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-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中,并清除了所有错误。非常感谢!