在 Maven 中使用自定义包装类型作为依赖项

Using custom packaging type as dependency in maven

我在我的 maven 插件中创建了一个自定义打包类型,这样我就可以以这种自定义格式部署文件。

例如我有一个项目使用这种格式进行打包。 pom.xml 有:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>mylib</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>mybin</packaging>
....

我能够成功部署到存储库。但是现在我想把它作为另一个项目的依赖。

例如通过添加如下内容:

<dependency>
            <groupId>com.example</groupId>
            <artifactId>mylib</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>mybin</type>
        </dependency>

这工作正常,除了 mybin 格式包含一些我想包含在类路径中的嵌套资源(例如 jar 文件)。

到目前为止,我已经尝试以编程方式从 mojo 中提取 jars,并使用 project.getModel().addDependency(systemJarDep) 以编程方式将其添加到项目中,但这似乎没有被编译器接受。

如何在 Maven 中完成此操作?

看来这种事情在Maven中是做不到的

我正在通过将我的自定义包类型的格式调整为 jar 文件本身来解决我的问题,并将我想要的所有 类 直接放在类路径中。我在类路径上不需要的其他子资源(至少默认情况下)捆绑在 META-INF 目录中。

这并不理想,但目前是可以接受的解决方案。