You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Oleg Gusakov (JIRA)" <ji...@codehaus.org> on 2008/12/08 21:48:19 UTC

[jira] Commented: (MERCURY-48) Document and vet the design

    [ http://jira.codehaus.org/browse/MERCURY-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=157315#action_157315 ] 

Oleg Gusakov commented on MERCURY-48:
-------------------------------------

The proposed syntax looks like this
{code:xml | title=build.xml | borderStyle=solid }
<project name="test" default="compile-tests" xmlns:merc="antlib:org.apache.maven.mercury.ant.tasks" >
	
	<!--
	    this example does not include <mvn:write .../> task, which 
	    will be used to install / deploy artifacts into repositories
	    nor this example show how to configure artifact 
	     validation - for the sake of simplicity
	-->

  <target name="init">
    <property name="config.name" value="home-config"/>
    <property name="java.version" value="1.5"/>
    
    <property name="src" value="${basedir}/src/main/java"/>
    <property name="target" value="${basedir}/target/classes"/>
    
    <property name="test.src" value="${basedir}/src/test/java"/>
    <property name="test.target" value="${basedir}/target/test-classes"/>
  
    <!--
     | configration: repositories, ?possibly profiles 
     -->
    <merc:config id="work-config">

    	<!-- local repo (indicated by dir) of default type -->   
      <merc:repo id="localRepo" dir="/app/maven.repo"/>

      <!-- remote repo (indicated by url) of explicit m2 type -->   
      <merc:repo type="m2" id="central" url="http://repo1.maven.org/maven2"/>
    	
    </merc:config>

    <merc:config id="home-config">

      <!-- local repo (indicated by dir) of default type -->   
      <merc:repo id="localRepo" dir="/app/maven.repo"/>

      <!-- remote repo (indicated by url) of default type (m2) -->   
      <merc:repo id="central" url="http://localhost:8081/nexus/contents/groups/public"/>

    </merc:config>

  	<!--
  	 | another way to get configuration
  	 |   to be implemented later on
  	 --> 
    <merc:config id="demo-config" file="~/.m2/settings.xml"/>
  	
  
    <!--
     | dependency sets, identified and referred to by id - path-like structure declarations
     -->
    <merc:dep id="my-libs">
    	
      <!-- coordinates as string, explicit default namespace  -->
      <merc:dependency name="ant:ant:1.6.5" xmlns="http://maven.apache.org/mercury/1"/>
    	
      <!-- 
       | a set of dependencies from a pom
       |  
       |    will be implemented last as mercury does not know
       |    about POMs - this will be a special read-only repository type   
      -->
      <merc:dependency name="org.apache.maven:maven:3.0-SNAPSHOT" pom="${basedir}/pom.xml"/>
    	
    </merc:dep>

  </target>

  <target name="compile" depends="init">
  	<!--
  	 | this is the workhorse task - creates a classpath named "compile-path"
  	 |  and adds all the transitive dependencies from "my-libs" in compile scope 
  	-->
    <merc:resolve name="resolve-compile-deps"
                 pathid="compile-path"
                 depref="my-libs"
                 configref="${config.name}"
                 />
    
    <javac srcdir="${src}"
           destdir="${target}"
           classpathref="compile-path"
           debug="on"
           source="${java.version}"
    />
  </target>
  
  <target name="compile-tests" depends="compile">  
    <!--
     | this is the workhorse task - creates a classpath named "test-path"
     |  and adds all the transitive dependencies from "my-libs" in test scope 
    -->
    <merc:resolve name="resolve-test-deps"
                 pathid="test-path"
                 depref="my-libs"
                 configref="${config.name}"
                 scope="test"
                 />
    
    <javac srcdir="${test.src}"
           destdir="${test.target}"
           classpathref="test-path"
           debug="on"
           source="${java.version}"
    />
  </target>
  
</project>
{code}

> Document and vet the design
> ---------------------------
>
>                 Key: MERCURY-48
>                 URL: http://jira.codehaus.org/browse/MERCURY-48
>             Project: Mercury
>          Issue Type: Sub-task
>          Components: Ant tasks
>            Reporter: Oleg Gusakov
>            Assignee: Oleg Gusakov
>   Original Estimate: 2 days
>  Remaining Estimate: 2 days
>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira