View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *  http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.geronimo.genesis.plugins.tools;
21  
22  import org.apache.geronimo.genesis.MojoSupport;
23  import org.apache.maven.project.MavenProject;
24  import org.apache.maven.artifact.Artifact;
25  
26  import java.io.File;
27  
28  /**
29   * Helper to install a specific file (or the projects pom) as the projects artifact file.
30   *
31   * <p>
32   * Custom packaging will need to define a artifact handler plexus component to map desired file extention.
33   * </p>
34   *
35   * @goal set-artifact-file
36   * @phase package
37   *
38   * @version $Rev: 452992 $ $Date: 2006-10-04 12:53:30 -0700 (Wed, 04 Oct 2006) $
39   */
40  public class SetProjectFileMojo
41      extends MojoSupport
42  {
43      /**
44       * The maven project.
45       *
46       * @parameter expression="${project}"
47       * @required
48       * @readonly
49       */
50      protected MavenProject project;
51  
52      /**
53       * The target file to set as the project's artifact.
54       * 
55       * @parameter expression="${project.file}"
56       * @required
57       */
58      private File targetFile;
59  
60      protected void doExecute() throws Exception {
61          log.info("Setting artifact file: " + targetFile);
62          
63          Artifact artifact = project.getArtifact();
64          artifact.setFile(targetFile);
65      }
66  }