带有分类器的 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>