Java jcabi乙醚基本示例不';行不通

Java jcabi乙醚基本示例不';行不通,java,maven,jcabi,Java,Maven,Jcabi,在jcabi-ether上,有一个简单的例子可以在Maven之外使用,它声称只需要一个Maven依赖项(jcabi-ether 0.9)。我已经为那个“主要”创建了一个项目,只是想尝试一下,但它似乎有一些,嗯,困难 public class Main { public static void main(String[] args) { File local = new File("/tmp/local-repository"); Collection<RemoteRep

在jcabi-ether上,有一个简单的例子可以在Maven之外使用,它声称只需要一个Maven依赖项(jcabi-ether 0.9)。我已经为那个“主要”创建了一个项目,只是想尝试一下,但它似乎有一些,嗯,困难

public class Main {
  public static void main(String[] args) {
    File local = new File("/tmp/local-repository");
    Collection<RemoteRepository> remotes = Arrays.asList(
      new RemoteRepository(
        "maven-central",
        "default",
        "http://repo1.maven.org/maven2/"
      )
    );
    Collection<Artifact> deps = new Aether(remotes, local).resolve( // #1
      new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
      "runtime"
    );
  }
}
嗯,好的,我还将加入maven设置生成器(3.3.2)。现在我们可以走了。。。正确的?不,这次,我得到了大量的异常输出,如下所示:

java.lang.instrument.IllegalClassFormatException: Error while instrumenting class com/jcabi/aether/Aether.
    at org.jacoco.agent.rt.internal_9dd1198.CoverageTransformer.transform(CoverageTransformer.java:89)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)

别误会我。听起来是个很棒的项目。但它真的有效吗?头版的例子是怎么回事?有人对此有经验吗?

从jcabi-ether at的github代码可以看出,我们确实需要添加以下两个依赖项:

<dependency>
        <groupId>com.jcabi</groupId>
        <artifactId>jcabi-aether</artifactId>
        <version>0.10</version>
    </dependency>

    <dependency>
        <groupId>org.sonatype.aether</groupId>
        <artifactId>aether-api</artifactId>
        <version>1.13.1</version>
    </dependency>


    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>3.0.3</version>
    </dependency>
  • 以太:以太api:1.13.1
  • org.apache.maven:maven核心:3.0.3
我添加了这些,并得到了要运行的示例代码

import java.io.File;
import java.util.Arrays;
import java.util.Collection;

import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.repository.RemoteRepository;
import org.sonatype.aether.resolution.DependencyResolutionException;
import org.sonatype.aether.util.artifact.DefaultArtifact;

import com.jcabi.aether.Aether;

public class RunAether {

public static void main(String[] args) throws DependencyResolutionException {

    File local = new File("/tmp/local-repository");
    Collection<RemoteRepository> remotes = Arrays.asList(
      new RemoteRepository(
        "maven-central",
        "default",
        "http://repo1.maven.org/maven2/"
      )
    );
    Collection<Artifact> deps = new Aether(remotes, local).resolve(
      new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
      "runtime"
    );

    System.out.println("Got the Junit dependencies");
}

}
导入java.io.File;
导入java.util.array;
导入java.util.Collection;
导入org.sonatype.ether.artifact.artifact;
导入org.sonatype.ether.repository.RemoteRepository;
导入org.sonatype.ether.resolution.dependencResolutionException;
导入org.sonatype.ether.util.artifact.DefaultArtifact;
导入com.jcabi.ether.ether;
公共级运行醚{
公共静态void main(字符串[]args)引发DependencyResolutionException{
File local=新文件(“/tmp/local repository”);
Collection remotes=Arrays.asList(
新远程存储库(
“马文中心”,
“默认”,
"http://repo1.maven.org/maven2/"
)
);
收集deps=新的以太(远程、本地)。解析(
新的DefaultArtifact(“junit”、“junit dep”、“jar”、“4.10”),
“运行时”
);
println(“获取Junit依赖项”);
}
}
我的pom文件依赖项:

<dependency>
        <groupId>com.jcabi</groupId>
        <artifactId>jcabi-aether</artifactId>
        <version>0.10</version>
    </dependency>

    <dependency>
        <groupId>org.sonatype.aether</groupId>
        <artifactId>aether-api</artifactId>
        <version>1.13.1</version>
    </dependency>


    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>3.0.3</version>
    </dependency>

com.jcabi
乙醚
0.10
org.sonatype.ether
乙醚原料药
1.13.1
org.apache.maven
马文堆芯
3.0.3

您的java版本是什么?编译和运行时编译时和运行时都是一样的吗?是的。使用Eclipse构建和启动。@TimW这可能是jacoco的问题。我是jcabi乙醚的创建者,请在这里创建一张罚单,这很容易成为图书馆中的一个bug。我只是想知道有没有找到解决这个问题的方法??我似乎在问题链接上找不到任何东西。