Vavr 源 jar 丢失 类

Vavr source jar is missing classes

当试图在 Vavr 中查找某些 类 的实现时,例如 Patterns.java,例如,其所有内部 类,即 Patterns.$Success,Eclipse 拒绝打开它们,因为它们不包含在从 Maven 中心下载的源 jar (vavr-0.9.2-sources.jar)

<dependency>
    <groupId>io.vavr</groupId>
    <artifactId>vavr</artifactId>
    <version>0.9.2</version>
</dependency>

<dependency>
    <groupId>io.vavr</groupId>
    <artifactId>vavr-test</artifactId>
    <version>0.9.2</version>
</dependency>

我在哪里可以获得完整源代码的 jar?

目前,class 是由 vavr-match 注释处理器模块生成的,它的输出没有添加到生成的源工件中,我认为这是一个遗漏,所以我会提交一个关于它的问题,看看我们是否可以从现在开始包含它。触发注释处理器的源 class 是 io.vavr.$(请注意,Eclipse 无法通过其 Open Type 对话框打开 class,但您可以尝试搜索 io.vavr. <- 注意末尾的 space)。

我将在下面的回答中包含生成的 Patterns.java 源文件的一个版本,并希望 vavr 的下一个版本将该文件包含在其源工件中。

// @formatter:off
// CHECKSTYLE:OFF
package io.vavr;

import io.vavr.API.Match.Pattern;
import io.vavr.API.Match.Pattern0;
import io.vavr.API.Match.Pattern1;
import io.vavr.API.Match.Pattern2;
import io.vavr.API.Match.Pattern3;
import io.vavr.API.Match.Pattern4;
import io.vavr.API.Match.Pattern5;
import io.vavr.API.Match.Pattern6;
import io.vavr.API.Match.Pattern7;
import io.vavr.API.Match.Pattern8;
import io.vavr.collection.List;
import io.vavr.concurrent.Future;
import io.vavr.control.Either;
import io.vavr.control.Option;
import io.vavr.control.Try;
import io.vavr.control.Validation;

// GENERATED BY VAVR <<>> derived from io.vavr.$

@SuppressWarnings("deprecation")
public final class Patterns {

    private Patterns() {
    }

    public static final Pattern0<Tuple0> $Tuple0 = Pattern0.of(Tuple0.class);

    public static <T1, _1 extends T1> Pattern1<Tuple1<T1>, _1> $Tuple1(Pattern<_1, ?> p1) {
        return Pattern1.of(Tuple1.class, p1, io.vavr.$::Tuple1);
    }

    public static <T1, T2, _1 extends T1, _2 extends T2> Pattern2<Tuple2<T1, T2>, _1, _2> $Tuple2(Pattern<_1, ?> p1, Pattern<_2, ?> p2) {
        return Pattern2.of(Tuple2.class, p1, p2, io.vavr.$::Tuple2);
    }

    public static <T1, T2, T3, _1 extends T1, _2 extends T2, _3 extends T3> Pattern3<Tuple3<T1, T2, T3>, _1, _2, _3> $Tuple3(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3) {
        return Pattern3.of(Tuple3.class, p1, p2, p3, io.vavr.$::Tuple3);
    }

    public static <T1, T2, T3, T4, _1 extends T1, _2 extends T2, _3 extends T3, _4 extends T4> Pattern4<Tuple4<T1, T2, T3, T4>, _1, _2, _3, _4> $Tuple4(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3, Pattern<_4, ?> p4) {
        return Pattern4.of(Tuple4.class, p1, p2, p3, p4, io.vavr.$::Tuple4);
    }

    public static <T1, T2, T3, T4, T5, _1 extends T1, _2 extends T2, _3 extends T3, _4 extends T4, _5 extends T5> Pattern5<Tuple5<T1, T2, T3, T4, T5>, _1, _2, _3, _4, _5> $Tuple5(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3, Pattern<_4, ?> p4, Pattern<_5, ?> p5) {
        return Pattern5.of(Tuple5.class, p1, p2, p3, p4, p5, io.vavr.$::Tuple5);
    }

    public static <T1, T2, T3, T4, T5, T6, _1 extends T1, _2 extends T2, _3 extends T3, _4 extends T4, _5 extends T5, _6 extends T6> Pattern6<Tuple6<T1, T2, T3, T4, T5, T6>, _1, _2, _3, _4, _5, _6> $Tuple6(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3, Pattern<_4, ?> p4, Pattern<_5, ?> p5, Pattern<_6, ?> p6) {
        return Pattern6.of(Tuple6.class, p1, p2, p3, p4, p5, p6, io.vavr.$::Tuple6);
    }

    public static <T1, T2, T3, T4, T5, T6, T7, _1 extends T1, _2 extends T2, _3 extends T3, _4 extends T4, _5 extends T5, _6 extends T6, _7 extends T7> Pattern7<Tuple7<T1, T2, T3, T4, T5, T6, T7>, _1, _2, _3, _4, _5, _6, _7> $Tuple7(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3, Pattern<_4, ?> p4, Pattern<_5, ?> p5, Pattern<_6, ?> p6, Pattern<_7, ?> p7) {
        return Pattern7.of(Tuple7.class, p1, p2, p3, p4, p5, p6, p7, io.vavr.$::Tuple7);
    }

    public static <T1, T2, T3, T4, T5, T6, T7, T8, _1 extends T1, _2 extends T2, _3 extends T3, _4 extends T4, _5 extends T5, _6 extends T6, _7 extends T7, _8 extends T8> Pattern8<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>, _1, _2, _3, _4, _5, _6, _7, _8> $Tuple8(Pattern<_1, ?> p1, Pattern<_2, ?> p2, Pattern<_3, ?> p3, Pattern<_4, ?> p4, Pattern<_5, ?> p5, Pattern<_6, ?> p6, Pattern<_7, ?> p7, Pattern<_8, ?> p8) {
        return Pattern8.of(Tuple8.class, p1, p2, p3, p4, p5, p6, p7, p8, io.vavr.$::Tuple8);
    }

    public static <T, _1 extends T, _2 extends List<T>> Pattern2<List.Cons<T>, _1, _2> $Cons(Pattern<_1, ?> p1, Pattern<_2, ?> p2) {
        return Pattern2.of(List.Cons.class, p1, p2, io.vavr.$::Cons);
    }

    public static <T> Pattern0<List.Nil<T>> $Nil() {
        return Pattern0.of(List.Nil.class);
    }

    public static <T, _1 extends Option<Try<T>>> Pattern1<Future<T>, _1> $Future(Pattern<_1, ?> p1) {
        return Pattern1.of(Future.class, p1, io.vavr.$::Future);
    }

    public static <L, R, _1 extends R> Pattern1<Either.Right<L, R>, _1> $Right(Pattern<_1, ?> p1) {
        return Pattern1.of(Either.Right.class, p1, io.vavr.$::Right);
    }

    public static <L, R, _1 extends L> Pattern1<Either.Left<L, R>, _1> $Left(Pattern<_1, ?> p1) {
        return Pattern1.of(Either.Left.class, p1, io.vavr.$::Left);
    }

    public static <T, _1 extends T> Pattern1<Option.Some<T>, _1> $Some(Pattern<_1, ?> p1) {
        return Pattern1.of(Option.Some.class, p1, io.vavr.$::Some);
    }

    public static <T> Pattern0<Option.None<T>> $None() {
        return Pattern0.of(Option.None.class);
    }

    public static <T, _1 extends T> Pattern1<Try.Success<T>, _1> $Success(Pattern<_1, ?> p1) {
        return Pattern1.of(Try.Success.class, p1, io.vavr.$::Success);
    }

    public static <T, _1 extends Throwable> Pattern1<Try.Failure<T>, _1> $Failure(Pattern<_1, ?> p1) {
        return Pattern1.of(Try.Failure.class, p1, io.vavr.$::Failure);
    }

    public static <E, T, _1 extends T> Pattern1<Validation.Valid<E, T>, _1> $Valid(Pattern<_1, ?> p1) {
        return Pattern1.of(Validation.Valid.class, p1, io.vavr.$::Valid);
    }

    public static <E, T, _1 extends E> Pattern1<Validation.Invalid<E, T>, _1> $Invalid(Pattern<_1, ?> p1) {
        return Pattern1.of(Validation.Invalid.class, p1, io.vavr.$::Invalid);
    }

}
// CHECKSTYLE:ON
// @formatter:on

编辑:issue opened: vavr#2209