带有分类器的 zip 格式的 Maven 依赖项
Maven dependency in zip format with classifier
我正在尝试从一个 zip 格式的项目中导入一些模式。文件的名称是 mySchema-1.0.32-schema.zip
。我的依赖项看起来像:
<dependency>
<groupId>some.group.id</groupId>
<artifactId>mySchema</artifactId>
<version>${schema.version}</version>
<classifier>schema</classifier>
<type>zip</type>
</dependency>
但是没有导入依赖项。它在我的回购协议中(我已经检查过),并且我有同一个项目的源依赖并且它工作得很好。我的分类器和类型正确吗?这是导入 zip
文件的方法吗?
编辑:
我发现,如果我将 <classifier>
更改为 source
,它会导入源代码,如果我将其更改为 -schemas
,它会报错。因此,导入似乎有效。虽然我在 IntelliJ IDEA 的依赖项列表中看不到它,但如果我 运行 mvn dependency:tree
,它就存在于那里:
\- some.group.id:mySchema:zip:schema:1.0.32-SNAPSHOT:compile
可能是我的解压缩不起作用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>some.group.id</groupId>
<artifactId>mySchema</artifactId>
<version>${schema.version}</version>
<classifier>schema</classifier>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>${basedir}/src/main/resources/json</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
澄清一下,我的输出目录存在。
找到解决方案。在 <build>
部分下添加了此插件:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-config</id>
<phase>compile</phase>
<goals><goal>unpack-dependencies</goal></goals>
<configuration>
<includeGroupIds>some.group.id</includeGroupIds>
<includeArtifactIds>mySchema</includeArtifactIds>
<includeClassifiers>schema</includeClassifiers>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>${project.build.directory}</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
</plugins>
我正在尝试从一个 zip 格式的项目中导入一些模式。文件的名称是 mySchema-1.0.32-schema.zip
。我的依赖项看起来像:
<dependency>
<groupId>some.group.id</groupId>
<artifactId>mySchema</artifactId>
<version>${schema.version}</version>
<classifier>schema</classifier>
<type>zip</type>
</dependency>
但是没有导入依赖项。它在我的回购协议中(我已经检查过),并且我有同一个项目的源依赖并且它工作得很好。我的分类器和类型正确吗?这是导入 zip
文件的方法吗?
编辑:
我发现,如果我将 <classifier>
更改为 source
,它会导入源代码,如果我将其更改为 -schemas
,它会报错。因此,导入似乎有效。虽然我在 IntelliJ IDEA 的依赖项列表中看不到它,但如果我 运行 mvn dependency:tree
,它就存在于那里:
\- some.group.id:mySchema:zip:schema:1.0.32-SNAPSHOT:compile
可能是我的解压缩不起作用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>some.group.id</groupId>
<artifactId>mySchema</artifactId>
<version>${schema.version}</version>
<classifier>schema</classifier>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>${basedir}/src/main/resources/json</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
澄清一下,我的输出目录存在。
找到解决方案。在 <build>
部分下添加了此插件:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-config</id>
<phase>compile</phase>
<goals><goal>unpack-dependencies</goal></goals>
<configuration>
<includeGroupIds>some.group.id</includeGroupIds>
<includeArtifactIds>mySchema</includeArtifactIds>
<includeClassifiers>schema</includeClassifiers>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>${project.build.directory}</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
</plugins>