Changeset 583

Show
Ignore:
Timestamp:
07/19/10 08:13:16 (8 weeks ago)
Author:
jboudart
Message:

Refactor plugins producinig main artifacts, they will use same property (target.main.artifact)
Refactor ivy-publication plugin to support overwrite

Location:
trunk
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • trunk/repository/extra-modules/org.apache.easyant.plugins/maven-publication/0.1/maven-publication.ant

    r581 r583  
    4040                <!--Create a POM in memory referenced by "maven.instance" id --> 
    4141                <mvn:pom id="maven.instance" /> 
     42                 
     43                <ea:parameter property="maven.remote.repo.url" required="true" description="maven url where artifact will be published"/> 
     44                <mvn:remoteRepository id="maven.remote.repository" url="${maven.remote.repo.url}"/> 
    4245 
    4346        </target> 
     
    4952                <!--ask  MavenIvy Adapters to convert dependencies and to inject them in the POM instance referenced by "maven.instance" id --> 
    5053                <mavenivy:dependencyAdapter pomRefId="maven.instance" settingsRef="${project.ivy.instance}" /> 
    51  
     54                 
    5255                <!-- write the pom on the filesystem --> 
    5356                <mvn:writepom pomRefId="maven.instance" file="${target.artifacts}/pom.xml" /> 
     57                 
     58                <mvn:pom id="maven.instance" file="${target.artifacts}/pom.xml"/> 
     59        </target> 
     60         
     61        <target name="-trigger-publish-shared" phase="generate-shared-version"> 
     62                <augment id="maven.instance" version="${version}"/> 
     63        </target> 
     64         
     65        <target name="-trigger-release" phase="generate-release-version"> 
     66                <augment id="maven.instance" version="${version}"/> 
     67        </target> 
     68         
     69        <target name=":publish-shared" phase="publish-shared"> 
     70                <mvn:deploy file="${target.main.artifact}" pomRefId="maven.instance"> 
     71                        <mvn:remoteRepository refid="maven.remote.repository"/> 
     72                </mvn:deploy> 
    5473        </target> 
    5574 
  • trunk/repository/extra-modules/org.apache.easyant.plugins/osgi-bundle/0.1/osgi-bundle.ant

    r364 r583  
    2626                <ea:parameter property="target.artifacts.main.bundle.name" required="true" 
    2727                                    description="main artifact file name" /> 
     28                <ea:parameter property="target.main.artifact" required="false" description="the location of the main artifact"  
     29                                        default="${target.artifacts}/${target.artifacts.main.bundle.name}.jar"/> 
    2830                <taskdef name="bundle"  
    2931                    classname="net.luminis.build.plugin.bnd.BuildTask" 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/default-version-strategy/0.1/default-version-strategy.ant

    r581 r583  
    8888         
    8989        <target name="-shared" phase="generate-shared-version" depends="validate" unless="ivy.new.revision"> 
     90                <ea:checkresolver resolver="shared.resolver" settingsRef="${project.ivy.instance}" description="name of the repository used to publish shared integration versions (snapshots)"/> 
    9091                <check-version-number/> 
    91                 <ivy:buildnumber organisation="${ivy.organisation}" module="${ivy.module}" revision="${ivy.revision}" defaultBuildNumber="${default.build.number}" revSep="${revision.separator}" settingsRef="${project.ivy.instance}" /> 
     92                <ivy:buildnumber organisation="${ivy.organisation}" module="${ivy.module}" revision="${ivy.revision}" defaultBuildNumber="${default.build.number}" revSep="${revision.separator}" settingsRef="${project.ivy.instance}" resolver="${shared.resolver}"/> 
    9293                <property name="version" value="${ivy.new.revision}" /> 
    9394        </target> 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/distribution/0.1/distribution.ant

    r548 r583  
    148148 
    149149        <target name=":jar-with-dependencies" depends="-force-retrieve,package" description="create a jar archive which contains the binary output of your project, along its the unpacked dependencies (only works on jar projects)"> 
    150                 <condition property="package.jar.file.exist"> 
     150                <condition property="target.main.artifact.exist"> 
    151151                        <and> 
    152                                 <isset property="package.jar.file"/> 
    153                                 <available file="${package.jar.file}"/> 
     152                                <isset property="target.main.artifact"/> 
     153                                <available file="${target.main.artifact}"/> 
    154154                        </and>           
    155155                </condition> 
    156                 <fail unless="${package.jar.file.exist}" message="${package.jar.file} not found"/> 
     156                <fail unless="${target.main.artifact.exist}" message="${target.main.artifact} not found"/> 
    157157                <ea:parameter property="bundle.withdependencies.excludes.pattern" default="META-INF/MANIFEST.MF"  
    158158                                        description="Pattern describing files excluded in the bundle jar with dependencies" /> 
     
    162162                        </zipfileset> 
    163163                        <zipfileset> 
    164                                 <fileset file="${package.jar.file}"/> 
     164                                <fileset file="${target.main.artifact}"/> 
    165165                        </zipfileset> 
    166166                </bundle> 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/ivy-publication/0.1/ivy-publication.ant

    r575 r583  
    4444                <ea:parameter property="project.ivy.file" required="true"  
    4545                                description="ivy file (use to resolve dependencies for the project)"/> 
     46                <ea:parameter property="publish.overwrite" default="false" 
     47                                description="specify if publish should overwrite existing artifacts or not"/> 
    4648                 
    4749                <ea:parameter property="ivy.haltonmissing"  
     
    8991                <ea:checkresolver resolver="release.resolver" settingsRef="${project.ivy.instance}" description="name of the repository used to publish releases"/> 
    9092                <check-version-number/> 
    91                 <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]" resolver="${release.resolver}" pubrevision="${version}" status="release" settingsRef="${project.ivy.instance}" haltonmissing="${ivy.haltonmissing}" update="true"/> 
     93                <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]"  
     94                        resolver="${release.resolver}"  
     95                        pubrevision="${version}"  
     96                        status="release"  
     97                        settingsRef="${project.ivy.instance}" 
     98                        overwrite="${publish.overwrite}" 
     99                        haltonmissing="${ivy.haltonmissing}"  
     100                        update="true"/> 
    92101                <echo message="project ${module.name} released with version ${version}" /> 
    93102        </target> 
     
    102111                        <format property="now" pattern="yyyyMMddHHmmss" /> 
    103112                </tstamp> 
    104                 <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]" resolver="${shared.resolver}" forcedeliver="true" pubdate="${now}" pubrevision="${version}" status="integration"  settingsRef="${project.ivy.instance}" haltonmissing="${ivy.haltonmissing}"/> 
     113                <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]"  
     114                        resolver="${shared.resolver}"  
     115                        forcedeliver="true"  
     116                        pubdate="${now}"  
     117                        pubrevision="${version}"  
     118                        status="integration" 
     119                        overwrite="${publish.overwrite}" 
     120                        settingsRef="${project.ivy.instance}"  
     121                        haltonmissing="${ivy.haltonmissing}"/> 
    105122                <echo message="project ${module.name} published with version ${version}" /> 
    106123        </target> 
     
    112129        <target name=":publish-local" phase="publish-local" depends="generate-local-version,package"> 
    113130                <check-version-number/> 
    114                 <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]" resolver="${local.resolver}" pubrevision="${version}" pubdate="${now}" status="integration" forcedeliver="true" settingsRef="${project.ivy.instance}" haltonmissing="${ivy.haltonmissing}"/> 
     131                <ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]"  
     132                        resolver="${local.resolver}"  
     133                        pubrevision="${version}"  
     134                        pubdate="${now}"  
     135                        status="integration"  
     136                        forcedeliver="true"  
     137                        overwrite="${publish.overwrite}" 
     138                        settingsRef="${project.ivy.instance}"  
     139                        haltonmissing="${ivy.haltonmissing}"/> 
    115140                <echo message="project ${module.name} published locally with version ${version}" /> 
    116141        </target> 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/manifest/0.1/manifest.ant

    r472 r583  
    8686 
    8787                <!-- create the target artifact dir if it does not exists --> 
    88                 <dirname file="${package.jar.file}" property="target.artifacts"/> 
     88                <dirname file="${target.main.artifact}" property="target.artifacts"/> 
    8989                <mkdir dir="${target.artifacts}"/> 
    90                 <manifestclasspath property="manifest.classpath" jarfile="${package.jar.file}"> 
     90                <manifestclasspath property="manifest.classpath" jarfile="${target.main.artifact}"> 
    9191                        <classpath refid="project.lib.main.classpath"/> 
    9292                </manifestclasspath> 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/package-jar/0.1/package-jar.ant

    r495 r583  
    3232                <ea:parameter property="target.artifacts" required="true" description="destination directory for target artifacts"/> 
    3333                 
    34                 <ea:parameter property="package.jar.file" required="false" description="the location of the main package jar file"  
     34                <ea:parameter property="target.main.artifact" required="false" description="the location of the main artifact"  
    3535                        default="${target.artifacts}/${target.artifacts.main.jar.name}"/> 
    3636 
     
    6060                        phase="package" unless="skip.jar.package"> 
    6161                <mkdir dir="${target.artifacts}" /> 
    62                 <jar destfile="${package.jar.file}" manifest="${manifest.file}"  
     62                <jar destfile="${target.main.artifact}" manifest="${manifest.file}"  
    6363                        basedir="${target.main.classes}" includes="${package.jar.includes.pattern}" 
    6464                        excludes="${package.jar.excludes.pattern}"> 
  • trunk/src/main/resources/org/apache/easyant/core/repository/modules/org.apache.easyant.plugins/package-war/0.1/package-war.ant

    r565 r583  
    6161                <ea:parameter property="target.webinf.lib.dir" default="${target}/war/WEB-INF/lib"  
    6262                                description="temp directory used to store artifacts that will be included in the WEB-INF lib directory"/> 
     63                <ea:parameter property="target.main.artifact" required="false" description="the location of the main artifact"  
     64                        default="${target.artifacts}/${target.artifacts.main.war.name}"/> 
     65 
    6366                <fileset id="package.metainf.fileset" dir="${package.metainf.basedir}" includes="${package.metainf.includes.pattern}" excludes="${package.metainf.excludes.pattern}"/> 
    6467 
     
    8083                <ea:parameter phase="package" /> 
    8184 
    82                 <war destfile="${target.artifacts}/${target.artifacts.main.war.name}" 
     85                <war destfile="${target.main.artifact}" 
    8386                                manifest="${manifest.file}" 
    8487                                needxmlfile="false"