在 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 目录中。
这并不理想,但目前是可以接受的解决方案。
我在我的 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 目录中。
这并不理想,但目前是可以接受的解决方案。