我目前正在尝试在任务中获取 Maven Deployer 的 URL,但它失败了。我能够获得 Maven Deployer 本身,但在调用方法时我显然无法创建 RemoteRepository 类型的对象mavenDeployer.getRepository()
。
这是build.gradle
文件:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///path/to/maven/repo/")
}
}
}
在我的任务中:
Upload uploadArchives = project.getTasks().withType(Upload.class)
.findByName(BasePlugin.UPLOAD_ARCHIVES_TASK_NAME);
for(ArtifactRepository repo : uploadArchives.getRepositories()) {
if (repo instanceof MavenDeployer) {
MavenDeployer mavenDeployer = (MavenDeployer) repo;
System.out.println(repo) //Returns org.apache.maven.artifact.ant.RemoteRepository
RemoteRepository l = (RemoteRepository) mavenDeployer.getRepository() // Crashes here
}
}
它显示:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':myTask'.
> org/apache/maven/artifact/ant/RemoteRepository
堆栈跟踪结束于:
Caused by: java.lang.ClassNotFoundException: org.apache.maven.artifact.ant.RemoteRepository
org.apache.maven.artifact.ant.RemoteRepository
显然,即使在我成功导入后,Gradle 也找不到该类。如果我注释掉创建类的行MavenDeployer
,它工作正常。
有没有办法来解决这个问题?如果没有,是否有另一种方法来获取 Maven Deployer 的存储库 URL?