You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/05/23 11:14:31 UTC
svn commit: rev 20241 - in avalon/trunk/tools/project/src: main/org/apache/avalon/tools main/org/apache/avalon/tools/tasks test/projects/gizmo
Author: mcconnell
Date: Sun May 23 02:14:30 2004
New Revision: 20241
Added:
avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JarTask.java
Modified:
avalon/trunk/tools/project/src/main/org/apache/avalon/tools/antlib.xml
avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JavacTask.java
avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/PrepareTask.java
avalon/trunk/tools/project/src/test/projects/gizmo/build.xml
Log:
add jar creation plus improvement to directory resolution approach
Modified: avalon/trunk/tools/project/src/main/org/apache/avalon/tools/antlib.xml
==============================================================================
--- avalon/trunk/tools/project/src/main/org/apache/avalon/tools/antlib.xml (original)
+++ avalon/trunk/tools/project/src/main/org/apache/avalon/tools/antlib.xml Sun May 23 02:14:30 2004
@@ -4,4 +4,5 @@
<typedef name="home" classname="org.apache.avalon.tools.home.Home"/>
<taskdef name="prepare" classname="org.apache.avalon.tools.tasks.PrepareTask"/>
<taskdef name="javac" classname="org.apache.avalon.tools.tasks.JavacTask"/>
+ <taskdef name="jar" classname="org.apache.avalon.tools.tasks.JarTask"/>
</antlib>
Added: avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JarTask.java
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JarTask.java Sun May 23 02:14:30 2004
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2004 Apache Software Foundation
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.avalon.tools.tasks;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.Copy;
+import org.apache.tools.ant.taskdefs.Jar;
+import org.apache.tools.ant.types.FileSet;
+import org.apache.tools.ant.types.Path;
+
+import org.apache.avalon.tools.home.Home;
+import org.apache.avalon.tools.project.Definition;
+
+/**
+ * Load a goal.
+ *
+ * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
+ * @version $Revision: 1.2 $ $Date: 2004/03/17 10:30:09 $
+ */
+public class JarTask extends HomeTask
+{
+ public void execute() throws BuildException
+ {
+ File classes =
+ JavacTask.getTargetClassesDirectory( getProject() );
+ File jarFile = getJarFile();
+ if( classes.exists() )
+ {
+ jar( classes, jarFile );
+ }
+ }
+
+ private File getJarFile()
+ {
+ File target = PrepareTask.getTargetDirectory( getProject() );
+ Definition def = getDefinition();
+ String name = def.getInfo().getName();
+ if( null != def.getInfo().getVersion() )
+ {
+ return new File( target, name + "-" + def.getInfo().getVersion() + ".jar" );
+ }
+ else
+ {
+ return new File( target, name + ".jar" );
+ }
+ }
+
+ private void jar( File classes, File jarFile )
+ {
+ Jar jar = (Jar) getProject().createTask( "jar" );
+ jar.setDestFile( jarFile );
+ jar.setBasedir( classes );
+ jar.init();
+ jar.execute();
+ }
+}
Modified: avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JavacTask.java
==============================================================================
--- avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JavacTask.java (original)
+++ avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/JavacTask.java Sun May 23 02:14:30 2004
@@ -21,6 +21,7 @@
import java.io.IOException;
import org.apache.tools.ant.Task;
+import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Copy;
import org.apache.tools.ant.taskdefs.Javac;
@@ -47,6 +48,13 @@
public static final String FORK_KEY = "java.compile.fork";
public static final boolean FORK_FLAG = false;
+ public static File getTargetClassesDirectory( Project project )
+ {
+ File target = PrepareTask.getTargetDirectory( project );
+ String classes = project.getProperty( CLASSES_KEY );
+ return new File( target, classes );
+ }
+
public void init() throws BuildException
{
super.init();
@@ -81,10 +89,7 @@
private File getTargetClassesDirectory()
{
- String path = getProject().getProperty( "avalon.target" );
- File target = new File( getProject().getBaseDir(), path );
- String classes = getProject().getProperty( "avalon.target.classes" );
- return new File( target, classes );
+ return getTargetClassesDirectory( getProject() );
}
private void compile( File sources, File classes, Path classpath )
Modified: avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/PrepareTask.java
==============================================================================
--- avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/PrepareTask.java (original)
+++ avalon/trunk/tools/project/src/main/org/apache/avalon/tools/tasks/PrepareTask.java Sun May 23 02:14:30 2004
@@ -21,6 +21,7 @@
import java.io.IOException;
import org.apache.tools.ant.Task;
+import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Copy;
import org.apache.tools.ant.taskdefs.Property;
@@ -43,6 +44,14 @@
public static String TARGET_SRC = TARGET + "/src";
public static String TARGET_SRC_MAIN = TARGET_SRC + "/main";
+ public static final String TARGET_KEY = "avalon.target";
+
+ public static File getTargetDirectory( Project project )
+ {
+ String target = project.getProperty( TARGET_KEY );
+ return new File( project.getBaseDir(), target );
+ }
+
public void init() throws BuildException
{
setProjectProperty( "avalon.src", SRC );
@@ -75,8 +84,7 @@
private File getTargetDirectory()
{
- String target = getProject().getProperty( "avalon.target" );
- return new File( getProject().getBaseDir(), target );
+ return getTargetDirectory( getProject() );
}
private void copySrcToBuildWithFiltering( File target )
Modified: avalon/trunk/tools/project/src/test/projects/gizmo/build.xml
==============================================================================
--- avalon/trunk/tools/project/src/test/projects/gizmo/build.xml (original)
+++ avalon/trunk/tools/project/src/test/projects/gizmo/build.xml Sun May 23 02:14:30 2004
@@ -6,6 +6,7 @@
<x:prepare/>
<x:javac/>
+ <x:jar/>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org