Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,13 @@ public MSBuildLoggingPomResolver (TaskLoggingHelper logger)
try {
using (var file = File.OpenRead (filename)) {
var project = Project.Load (file);
var registered_artifact = Artifact.Parse (project.VersionedArtifactString);

// POMs may inherit GroupId/Version from a <parent> element, so fall back to
// the parent's values when the project itself doesn't declare them. (Without
// this, building an Artifact would fail validation with an empty coordinate.)
var groupId = project.GroupId.HasValue () ? project.GroupId : (project.Parent?.GroupId ?? "");
var version = project.Version.HasValue () ? project.Version : (project.Parent?.Version ?? "");
var registered_artifact = new Artifact (groupId, project.ArtifactId ?? "", version);

// Return the registered artifact, preferring any overrides specified in the task item
var final_artifact = new Artifact (
Expand Down
2 changes: 1 addition & 1 deletion src/Xamarin.Android.Build.Tasks/Tasks/MavenDownload.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public async override System.Threading.Tasks.Task RunTaskAsync ()
var maven_override_filename = item.GetMetadataOrDefault<string> ("ArtifactFilename", null);

// Download artifact
var artifact_file = await MavenExtensions.DownloadPayload (repository, artifact, MavenCacheDirectory, maven_override_filename, Log, CancellationToken);
var artifact_file = await MavenExtensions.DownloadPayload (repository, artifact, maven_override_filename, Log, CancellationToken);

if (artifact_file is null)
return null;
Expand Down
12 changes: 4 additions & 8 deletions src/Xamarin.Android.Build.Tasks/Utilities/MavenExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,19 +130,15 @@ public static bool TryParseJavaArtifacts (this ITaskItem task, string type, Task
}

// Returns artifact output path
public static async Task<string?> DownloadPayload (CachedMavenRepository repository, Artifact artifact, string cacheDir, string? mavenOverrideFilename, TaskLoggingHelper log, CancellationToken cancellationToken)
public static async Task<string?> DownloadPayload (CachedMavenRepository repository, Artifact artifact, string? mavenOverrideFilename, TaskLoggingHelper log, CancellationToken cancellationToken)
{
var output_directory = Path.Combine (cacheDir, repository.Name, artifact.GroupId, artifact.Id, artifact.Version);

Directory.CreateDirectory (output_directory);

var files_to_check = new List<string> ();

if (mavenOverrideFilename.HasValue ()) {
files_to_check.Add (Path.Combine (output_directory, mavenOverrideFilename));
files_to_check.Add (repository.GetArtifactFilePath (artifact, mavenOverrideFilename));
} else {
files_to_check.Add (Path.Combine (output_directory, $"{artifact.Id}-{artifact.Version}.jar"));
files_to_check.Add (Path.Combine (output_directory, $"{artifact.Id}-{artifact.Version}.aar"));
files_to_check.Add (repository.GetArtifactFilePath (artifact, $"{artifact.Id}-{artifact.Version}.jar"));
files_to_check.Add (repository.GetArtifactFilePath (artifact, $"{artifact.Id}-{artifact.Version}.aar"));
}

// We don't need to redownload if we already have a cached copy
Expand Down