1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.resolver.internal.ant.tasks;
20
21 import org.apache.maven.resolver.internal.ant.AntRepoSys;
22 import org.apache.maven.resolver.internal.ant.types.RemoteRepository;
23 import org.apache.tools.ant.BuildException;
24 import org.apache.tools.ant.types.Reference;
25
26
27
28 public class Deploy extends AbstractDistTask {
29
30 private RemoteRepository repository;
31
32 private RemoteRepository snapshotRepository;
33
34 @Override
35 protected void validate() {
36 super.validate();
37
38 if (repository == null) {
39 throw new BuildException("You must specify the <remoteRepo id=\"...\" url=\"...\"> element"
40 + " to denote the target repository for the deployment");
41 } else {
42 repository.validate(this);
43 }
44 if (snapshotRepository != null) {
45 snapshotRepository.validate(this);
46 }
47 }
48
49 public void addRemoteRepo(RemoteRepository repository) {
50 if (this.repository != null) {
51 throw new BuildException("You must not specify multiple <remoteRepo> elements");
52 }
53 this.repository = repository;
54 }
55
56 public void setRemoteRepoRef(Reference ref) {
57 if (repository == null) {
58 repository = new RemoteRepository();
59 repository.setProject(getProject());
60 }
61 repository.setRefid(ref);
62 }
63
64 public void addSnapshotRepo(RemoteRepository snapshotRepository) {
65 if (this.snapshotRepository != null) {
66 throw new BuildException("You must not specify multiple <snapshotRepo> elements");
67 }
68 this.snapshotRepository = snapshotRepository;
69 }
70
71 public void setSnapshotRepoRef(Reference ref) {
72 if (snapshotRepository == null) {
73 snapshotRepository = new RemoteRepository();
74 snapshotRepository.setProject(getProject());
75 }
76 snapshotRepository.setRefid(ref);
77 }
78
79 @Override
80 public void execute() throws BuildException {
81 validate();
82
83 AntRepoSys.getInstance(getProject()).deploy(this, getPom(), getArtifacts(), repository, snapshotRepository);
84 }
85 }