- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想使用 Google Reflections 从我的 Maven 插件编译的项目中扫描类。但是默认情况下插件看不到项目的编译类。来自 Maven 3 documentation我阅读:
Plugins that need to load classes from the compile/runtime/test class path of a project need to create a custom URLClassLoader in combination with the mojo annotation @requiresDependencyResolution.
至少可以说这有点含糊。基本上我需要一个类加载器的引用来加载已编译的项目类。我如何获得它?
编辑:
好的,@Mojo
注释有 requiresDependencyResolution
参数,所以这很简单,但仍然需要正确的方法来构建类加载器。
最佳答案
@Component
private MavenProject project;
@SuppressWarnings("unchecked")
@Override
public void execute() throws MojoExecutionException {
List<String> classpathElements = null;
try {
classpathElements = project.getCompileClasspathElements();
List<URL> projectClasspathList = new ArrayList<URL>();
for (String element : classpathElements) {
try {
projectClasspathList.add(new File(element).toURI().toURL());
} catch (MalformedURLException e) {
throw new MojoExecutionException(element + " is an invalid classpath element", e);
}
}
URLClassLoader loader = new URLClassLoader(projectClasspathList.toArray(new URL[0]));
// ... and now you can pass the above classloader to Reflections
} catch (ClassNotFoundException e) {
throw new MojoExecutionException(e.getMessage());
} catch (DependencyResolutionRequiredException e) {
new MojoExecutionException("Dependency resolution failed", e);
}
}
关于java - 来自 Maven Mojo 的思考,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722366/
我创建了一个带有一些 mojo 的 maven 插件,每个插件都有一个非常特殊的用途。但是对于最终用户来说,一次执行其中一些会很好(顺序至关重要)。 那么如何从一个 mojo 执行中执行其他 mojo
我在玩 Mojolicious 和 websockets。我想将服务器上多个外部命令的输出发送到网页。我在连接和接收消息方面没有问题,但我还想将消息发送回服务器以停止外部命令,同时让其他人继续向客户端
我开发的插件中抛出 ClassNotFoundException。无法找到的类肯定存在,并且其关联项目作为依赖项包含在执行项目的 pom.xml 文件中,如下所示: com.example
我有一个包含 2 个 Maven 插件模块的 mutli 项目:base 和 child (maven-plugin)。 child 依赖基地。 基础插件只有一个类: public abstract
仅当将“-p”添加到 org.codehaus.mojo:exec-maven-plugin:1.6.0:exec 插件时,以下 pom.xml 执行才会失败,删除此参数后它运行正常,但我需要争论,有
我遇到了很多麻烦,我想安装 Mojo::DOM,但我在互联网上找不到安装它的指南。 最佳答案 apt install libmojolicious-perl 或者 cpan install Mojo:
我正在尝试编写一个 maven 插件,包括 mvn 配置参数中自定义类的映射。 有谁知道等效类“Person”的样子: http://maven.apache.org/guides/mini/guid
我有基于 mojolicious 的小应用程序。我在公共(public)目录中有 index.html。当用户要求输入“/”时,我希望有到该文件的路由。 我写了两个解决方案,但我不喜欢它们。 第一个解
阅读开发 maven 插件的指南,我看到您可以定义列表参数和任意对象参数,但是是否可以定义一个参数来标识对象列表,定义为: /** * @parameter */ private List obj
为什么 media:group 出现在 dom 中却不起作用? #!/usr/bin/env perl use warnings; use 5.12.0; use Mojo::UserAgent; m
我有以下使用 Test::Mojo 的测试脚本。当我使用 perl 从命令行运行它时,它输出正确。但是,当我通过“prove -v”运行它时,Mojo 日志记录会重复,并且其中之一不会通过“on me
为什么 media:group 出现在 dom 中却不起作用? #!/usr/bin/env perl use warnings; use 5.12.0; use Mojo::UserAgent; m
我已将 mojo 的插件 build-helper 添加到我的项目 pom 中,为我的集成测试生成一个新的测试源文件夹。当我运行该阶段时,生成测试源 mvn generate-test-sour
是否可以在另一个参数中使用定义的参数?例如,我尝试了这个并发现这是不允许的: @Parameter(required = true) private String semester; @Paramet
如果我尝试在http://flexmojos.sonatype.org/getting-started.html上开始使用我收到一些错误。有人可以帮我吗?我是 Maven 新手,但由于这是一个入门,我
这里有我的 Maven Mojo: import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoEx
我正在开发一种魔力,我设想它有 2 个目标。 例如 /** * @goal validate-user-config * @goal build-user-project
我想知道为什么没有地方说 Maven 中的 getLog() 是如何工作的?如果有人能用几句话描述这个方法的主要任务,那就太好了。 最佳答案 你读过文档了吗? http://maven.apache.
在 Mojo 中,我如何以编程方式获取其他 POM 文件的 Mojo 实例? 在我的用例中,我有一个 Mojo X,它允许在 POM 中声明对其他 Artifact Y 的引用(假设类似于 Depen
我正在使用 Mojolicious 和 Mysql。连接到数据库是simple : url => Mojo::MySQL5->new( 'mysql://user:password@127.0.0
我是一名优秀的程序员,十分优秀!